问题描述;大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
从下往上计算,首先根据f(0)和f(1)算出f(2),
在根据f(1)和f(2)算出f(3)……依此类推就可以算出第n项了。这种思路的时间复杂度是O(n)
代码实现:
#include <stdio.h>
int Fibonacci(int n)
{
int result[2] = {0,1};
if(n < 2)
return result[n];
int fibone = 1;
int fibtwo = 0;
int fibn = 0;
for(int i = 2;i<=n;i++)
{
fibn = fibone + fibtwo;
fibtwo = fibone;
fibone = fibn;
}
return fibn;
}
int main(){
int n;
printf("input n : ");
scanf("%d",&n);
printf("%d\n",Fibonacci(n));
return 0;
}