斐波那契数列有如下特点:
第1,2两个数为1,1。从第三数开始,该数是其前面数之和。即
F1=1;
F2=1;
F3=F1+F2;
Fn=Fn-1+Fn-2;
1,用for语句实现,
代码如下:
#include<stdio.h>
int Fibon(int n)
{
int f1=1;
int f2=1;
int f3;
for(int i=2;i<=n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
return f3;
}
int main()
{
printf("%d\n",Fibon(2));
printf("%d\n",Fibon(6));
printf("%d\n",Fibon(10));
return 0;
}
2,用数组解决斐波那契数列问题
void Show(int *arr,int len) //len代表数组长度
{
for(int i=0;i<len;i++) //i为数组下标
{
printf("%d ",arr[i]);
}
printf("\n");
}
void Fibon(int *arr,int len)
{
arr[0] = 1;
arr[1] = 1;
for(int i=2;i<len;i++)
{
arr[i] = arr[i-1] + arr[i-2];
}
}
int main()
{
int brr[] = {1,2,3,4,5,6,7,8,9,10,11,12};
Fibon(brr,sizeof(brr)/sizeof(brr[0]));
Show(brr,sizeof(brr)/sizeof(brr[0]));
return 0;
}