1.题目 :BC117 小乐乐走台阶
牛客OJ题链接
- 描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
- 输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
- 输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1:
输入:2
输出:2
示例2:
输入:10
输出:89
2.思路
一开始不知道是什么,分析了下,
1个台阶只有1种走法
2个台阶有2种走法(1个1个走 || 一次走2个)
3个台阶有3种走法(1个1个走 || 第一次走2个,第二次走1个||第一次走1个,第二次走2个)
4个台阶有5种走法(1个1个走||2个2个走||第一次走1个,第二次走2个,第三次走1个||第一次走2个,第二次走1个,第三次走1个|| 第一次走1个,第二次走1个,第三次再走2个)
这看起来就眼熟了这不是斐波那契么。除了前两项,后面的都是前面两项相加。直接写代码
3.代码实现
#include <stdio.h>
int step(int n)
{
if(n <=2)
{
return n;
}
else
{
return step(n-1)+step(n-2);
}
}
int main() {
int a;
while (scanf("%d ", &a) != EOF) {
int b = step(a);
printf("%d",b);
}
return 0;
}