描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1
输入:2
输出:2
示例2
输入:10
输出:89
这是一个典型的递归问题:
1.先定义递归函数
int zoufa(int x){}
在设计递归函数时,要假设这个函数是成功的,再根据函数的功能取实现递归
2.找到递归终止的条件
小乐乐每次能走一阶或者两阶台阶,如果将终止条件设置为1,则最后剩余两阶台阶的话,小乐乐可以一次性走完,所以终止条件应该为1和2,当台阶数为1时,小乐乐有1种走法,台阶数为2时,有两种走法
3.找到递推关系式
小乐乐在刚开始可以选择走一阶或者两阶,所以总的走法为第一次走1阶剩余的台阶的所有走法和第一次走2阶的剩余台阶的走法之和
#include<stdio.h>
int zoufa(int x)
{
if(x<=2){
return x;
}
else{
return zoufa(x-1)+zoufa(x-2);
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",digui(n));
return 0;
}