C语⾔实现斐波那契数列的⼏种⽅法
斐波那契数列指的是这样⼀个数列:1 、1、2、3、5、8、13、21、34、55、89……是从第三项开始每⼀项都是前两项之和。⽤递推的⽅法定义为:
f(0)=1;f(1)=1;
f(n)=f(n-1)+f(n-2)      (n>=2,n∈N*)
可以⽤循环法、指针数组法实现,最不适合⽤递归的⽅法使⽤。
1、指针数组法
//指针数组法
void Show(int *arr,int len)
{
for (int i=0;i<len;i++)
{
printf("%5d  ",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[10]={ };
int len=sizeof(brr)/sizeof(brr[0]);
Fibon (brr,len);
Show (brr,len);
return 0;
}
2、循环法
/
/循环法
int Fibon_for(int n)    //O(n),O(1) {
int f1 = 1;
int f2 = 1;
int f3 = 1;
for(int i=1;i<n;i++)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
int main()
{
for(int i=0;i<10;i++)
{
printf("%d ",Fibon_for(i));
}
return 0;
}
3、递归法(最不适合使⽤)
/
/递归法(最不适合⽤递归)
int Fibon(int n)
{
if(n==0 || n==1)
{
return 1;
}
else
{
return Fibon (n-1)+Fibon (n-2); }
}
c语言斐波那契数列
int main()
{
printf("%d\n",Fibon (10));
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。