Fibonacci數
- 描述
-
-
無窮數列1,1,2,3,5,8,13,21,34,55...稱爲Fibonacci數列,它可以遞歸地定義爲
F[n]=0;(n=0);
F(n)=F(n-1)+F(n-2).....(n>2)
現要你來求第n個斐波那契數。(第1個、第二個都爲1) -
F(n)=1 ...........(n=1或n=2)
-
-
遞歸法://效率低
-
#include<stdio.h>
int fib(int n)
{
if(n==0||n==1) return n;
return fib(n-1)+fib(n-2);
}
int main()
{
int m;
scanf("%d",&m);
while(m--)
{
int n;
scanf("%d",&n);
printf("%d\n",fib(n));
}
}
-
-
遞推法:
-
#include<stdio.h>
int main()
{
int n,i,f[1000];
scanf("%d",&n);
f[0]=0;
f[1]=1;
for(i=2; i<=n; i++)
{
f[i]=f[i-1]+f[i-2];
}
printf("%d\n",f[n]);
return 0;
}