原题:用递推法计算斐波那契(Fibonacci)数列的第 n 项.
分析:斐波那契数列为 0, 1, 1, 2, 3, 5, 8, 13, ..., 即 F(0) = 0, F(1) = 1, ... , F(n) = F(n -1) + F(n - 2)(当 n > 1 时).
#include<stdio.h>
int fibonacci(int n)
{
int f0 = 0, f1 = 1, f, i;
if(0 == n) return 0;
if(1 == n) return 1;
for(i = 2; i <= n; i++)
{
f = f0 + f1; //由前两步的结果得到当前结果
f0 = f1; //把原来的前一步当作下一次的前两步
f1 = f; //在进行这种向前传递时,注意传递的时序
}
return f;
}
void main()
{
int n;
printf("你要求fibonacci数列的第几项的值,请输入:");
scanf("%d", &n);
printf("f(%d) = %d \n", n, fibonacci(n));
}