经典的递归例子:斐波那契数列(Fibonacci)
其函数表达式为:
递归定义: 其实在现代语言中,调用自己和其他函数没有什么本质的不同,这种直接调用自己的或通过一系列的调用语句间接的调用自己的函数,就是递归函数
递归有一个非常重要的注意点就是,必须至少有一个条件,满足时递归不在进行然后返回
#include
/* 斐波那契的递归函数 */
int Fbi(int i)
{
if( i < 2 )
return i == 0 ? 0 : 1;
return Fbi(i - 1) + Fbi(i - 2); /* 这里Fbi就是函数自己,等于在调用自己 */
}
int main()
{
int i;
int a[40];
printf("迭代显示斐波那契数列:\n");
a[0]=0;
a[1]=1;
printf("%d ",a[0]);
printf("%d ",a[1]);
for(i = 2;i < 40;i++)
{
a[i] = a[i-1] + a[i-2];
printf("%d ",a[i]);
}
printf("\n");
printf("递归显示斐波那契数列:\n");
for(i = 0;i < 40;i++)
printf("%d ", Fbi(i));
return 0;
}