递归调用
【例】n阶乘的递归调用实现
题目:假如有n个台阶,一次只能上1个台阶或2个台阶,请问走到第n个台阶有几种走法?
#include <cstdio>
//n的阶乘
int f(int n)
{
if(1==n)
{
return 1;
}
return n*f(n-1);
}
//走楼梯
int step(int n)
{
if(1==n)
{
return 1;
}
if(2==n)
{
return 2;
}
return step(n-1)+step(n-2);
}
int main()
{
int n;
int ret;
scanf("%d",&n);// 请输入数字的大小
ret=f(n);
printf("%d\n",ret);
scanf("%d\n",&n);// 请输入台阶数
ret=step(n);
printf("%d\n",ret);
return 0;
}