- 递归:自己调用自己
- 递归调用的是栈空间(1M)
- 缺点:空间占用大
- 例:求1到n的和
#include<stdio.h>
int Sum()
{
if(n==1 || n==0)
{
return n;
}
else
{
return Sum(n-1)+n;
}
}
- 求阶乘
#include<stdio.h>
int Fac()
{
if(n==1 || n==0)
return n;
else
return Fac(n-1)*n;
}
- 斐波那契数列(前两项之和等于下一项)
int Fibon(int n)
{
if(n==1 || n==2)
return 1;
else
return Fibon(n-1)+Fibon(n-2);
}
-
斐波那契是最不适用递归的例子
-
测试用例
int main()
{
for(int i=1;i<=7;i++)
{
printf("%d\n",Fibon(i));//斐波那契前7项
}
printf("%d\n",Sum(5));
printf("%d\n",Fac(3));
return 0;
}