递归函数:2^13=2^8*2^4*2^1,正好是13=1101每一位分别作为系数
eg:power(3,11,1)
int power(x,n,res){
if(n==0)return res;
if(n%2) return power(x*x,n/2,res*x);
else return power(x*x,n/2,res);
}
1.函数题:删除链表中相邻的相同元素。
while(p){
if(p->next){
while(p->next->value==p->value){
Node* cur = p->next ;
p->next = cur->next ;
free(cur);
}
p = p->next ;
}
2.一个计算比例的题,但是给的图和给的例子感觉对不上,例子是iuput1*w11+input2*w21,input1*w12+input2*w22,代入1/(1+e^-x)得两个output,实际上忘了是什么了,好像是input(x)----w11 w12--->output(x),x = 1,2
3.输出第二天的日期,作业题,计算year是否为闰年,1 3 5 7 8 10 12+31 || 闰年2+29 || 非闰年2+28 || 其他+30 要换月。12月+要换月=新年第一天。
##include<stdio.h>
void nextday(int year, int month, int day);
int run(int year){
return !(year%400) || ( !(year%4) && (year%100) );
}
int main(){
int year,month,day;
scanf("%d-%d-%d",&year,&month,&day);
nextday(year, month, day);
}
void nextday(int year, int month, int day){
int change_month=0;
int flag ;
switch(month){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:flag=1; break;
default: flag=0;
}
if( flag==1 && day==31 ) change_month=1;
else if( run(year) && month==2 && day==29) change_month=1;
else if(month==2 && day==28) change_month=1;
else if(day==30) change_month=1;
if(month==12 && change_month==1){ year++;month=1;day=1; }
else if(change_month==1){ month++;day=1; }
else day++;
printf("%d-%d-%d",year,month,day);
}
4.计算两个n维向量模长,是否垂直。注意double。
5.判断数字回文。给定了五位数,直接计算即可。