我们设第n个斐波那契数为F(n),根据斐波那契数列的定义,有:
1)当n<=2,F(n)=1;
2)当n>2,F(n)=F(n-1)+F(n-2)。
那么在我们进行递归编程的时候,可以:
1)把"当n<=2,F(n)=1"作为基础部分,即递归返回基础;
2)而"当n>2,F(n)=F(n-1)+F(n-2)"作为递归部分。
然后开始编程,实验代码如下:
#include<stdio.h>
int Fibonacci(int n)
{
if(n==1||n==2)
return 1; //基础部分
else
return Fibonacci(n-1)+Fibonacci(n-2); //递归部分
}
int main(int argc,char* argv[])
{
int ret_fn=Fibonacci(10);
printf("%d\n",ret_fn);
return 0;
}
代码运行,打印为:55。