/*
斐波那契数列:规定第一个是n1=0,第二个是n2=1,第三个是n1+n2,第四个是n2+n3,依次类推
*/
#include <stdio.h>
int fb(int x);
printf("输入一个数字");
int a;
scanf("%d",&a);
for (int i=1; i<=a; i++) {
printf("%d ",fb(i));
}
//递归:使用递归,系统开销要比迭代大,所以尽量使用迭代解决问题。
int fb(int x){
if(x==1)
return 0;
if(x==2)
return 1;
else
return fb(x-1)+fb(x-2);//x前面的一项加x前面前面的一项
}
//迭代
//int fb(int x){
// int prevlous1=0;//前面的前面的数字
// int prevlous2=1;//前面的数字
// int current=0;//当前位置数字
// if (x==1) { //斐波那契数列规定第一个为0
// return 0;
// }
// if (x==2) { //斐波那契数列规定第一个为1
// return 1;
// }
// int i=2; //用来计数
//下面是用来计算位置为3以及以后位置的数字
// while (i<x) {
// 从第三项开始每项都是前两项之和
// current = prevlous1 + prevlous2;
// prevlous1 = prevlous2;//将前面的前面赋值为前面的数字
// prevlous2 = current;//将前面的数字赋值为当前数字
// i++;//计数器增1以备下次使用
// }
// return current;
//}