典型的函数递归调用:阶乘和斐波那契数列
函数的递归调用使用了递归栈。一层栈存储一个函数调用的信息。
递归栈存储的内容:
- 函数的返回地址
- 函数的实参
- 函数的局部变量
例题实现:
#include<stdio.h>
int fun1(int n)//求阶乘函数
{
if(n==1)
return 1;
return n*fun1(n-1);
}
int fun2(int n)//求斐波那契数列
{
if(n==1)
return 1;
if(n==2)
return 2;
return fun2(n-1)+fun2(n-2);
}
int main(){
printf("请输入\n");
int n;
scanf("%d",&n);
int b1=fun1(n);
int b2=fun2(n);
printf("n的阶乘是:%d\n",b1);
printf("项斐波那契额数列第n项的值是:%d",b2);
return 0;
}