递归上台阶
楼梯有 n 阶台阶,上楼可以一步上 1 阶,也可以一步上 2 阶,计算共有多少种不同的走法?
【推导公式】
最后是一步上1个台阶的话,之前上了n-1个台阶,走法为f(n-1)种,而最后是一步上2个台阶的话,之前上了n-2个台阶。
f(n) = f(n-1) + f(n-2);
f(1) = 1;
f(2) = 2;
【输入描述】
输入一行。输入台阶数量 n 。
【输出描述】
输出一行。输出爬台阶的方法数。
【输入样例】
5
【输出样例】
8
【参考程序】
// 小牛编程
#include <iostream>
using namespace std;
int climb(int n) {
if (n == 1)
return 1;
if (n == 2)
return 2;
return climb(n - 1) + climb(n - 2);
}
int main() {
int n;
cin >> n;
cout << climb(n) << endl;
return 0;
}