C语言打印斐波那契数列,具体的个数由用户输入。
我们知道斐波那契数列的规律是从第三个数开始,它数值是前2个的合计。
实现的代码如下:
#include
#include
int main()
{
int i;
int n = 1;
int m = 1;
int sum;
int count;
printf("请输入斐波那契的个数:");
scanf("%d",&count);
printf("%d\n%d\n",n,m); //提前打印前2个数: 1 1
for(i = 0; i < count - 2; i++){ //或者写成 for(i = 2; i < count; i++)
sum = n + m;
printf("%d\n",sum);
n = m; //开始实现两个变量的移动
m = sum;
}
return 0;
}
关键注意点有2个:
1、前2个数 1 1 要提前打印出来,因为没规律可循
2、实现 n 和 m 2个数值的更新,以便下一次的相加
让代码更加优化的话,在前面加上判断语句:
if(count < 1){
printf("长度最小为1\n");
return 1;
}else if(count == 1){
printf("1");
return 1;
}else if(count == 2){
printf("1,1");
return 0;
}