编写程序,打印如下序列前50项。该序列是第1、2两项为1,从第3项以后奇数项为前两项之和、偶数项为前两项只差。
#include<stdio.h>
int main(void){
int u=1,v=1,p=0,i;
printf("%d\t",u);
printf("%d\n",v);
for(i=3;i<=50;i++){
if(i%2==0){
p=u+v;
printf("%d\n",p);
u=v;
v=p;
}else{
p=v-u;
printf("%d\t",p);
u=v;
v=p;
}
}
return 0;
}
原答案:
#include<stdio.h>
int main(void){
int u,v,w,k,flag,count=0;
u=1;
v=1;
flag=1;
printf("%d\t",u);count++;
printf("%d\t",v);count++;
for(k=3;k<=50;k++){
w=v+u*flag;
u=v;
v=w;
flag=-flag;
printf("%d\t",w);count++;
if(count==5){
printf("\n");count=0;
}
}
return 0;
}