题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
解答:
一、递归
#include<stdio.h>
long long Fibonacci(unsigned int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
printf("%lld\n",Fibonacci(10));
return 0;
}
二、从下往上计算
#include<stdio.h>
long long Fibonacci(unsigned int n)
{
int result[2]={0,1};
if(n<2)
return result[n];
long long f0=0;
long long f1=1;
long long Fsum=0;
unsigned i=2;
for(i;i<=n;++i)
{
Fsum=f0+f1;
f0=f1;
f1=Fsum;
}
return Fsum;
}
int main()
{
printf("%lld\n",Fibonacci(10));
return 0;
}
先算出前两项之和,然后依次往后计算。