问题描述
科学馆的楼梯有n(n<=30)阶台阶,何老板腿比较长,上楼可以一步跨1阶,也可以一步跨2阶,也可以一步跨3阶,也可以一步跨4阶,编一程序计算他恰好走完n阶共有多少种不同的走法。
输入格式
一个整数,表示楼梯总数n
输出格式
一个整数,表示方案总数
样例输入
3
样例输出
4
#include <iostream>
using namespace std;
int count(int n) {
if (n == 1) { // 只有1阶台阶,只有1种走法
return 1;
}
if (n == 2) { // 只有2阶台阶,有2种走法
return 2;
}
if (n == 3) { // 只有3阶台阶,有4种走法
return 4;
}
if (n == 4) { // 只有4阶台阶,有8种走法
return 8;
}
// n > 4的情况
return count(n-1) + count(n-2) + count(n-3) + count(n-4);
}
int main() {
int n;
cin >> n;
cout << count(n) << endl;
return 0;
}