题目
楼梯有N级台阶,上楼可以一步上一阶,也可以一步上二阶。编一程序,计算共有多少种不同走法?
输入
输入台阶的数量n(n <= 50)
输出
输出走到第n级台阶共有多少走法
样例输入
3
样例输出
3
分析
通过观察易得,走到第一级台阶只有一种走法,走到第二级台阶有走两个一级和走一个二级两种走法,走到第三级台阶有三种走法,走到第四级台阶五种走法……以此类推,可得出递推式为:f[ i ] = f[ i - 1 ] + f[ i - 2 ];
代码
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
int f[n + 10];
f[1] = 1;
f[2] = 2;
for (int i = 3; i <= n; i++) {
f[i] = f[i - 2] + f[i - 1];
}
cout << f[n];
return 0;
}