题目
一共有n阶楼梯,一次可以上1阶或2阶,请编写一个程序输出走法数量
输入样例:
3
输出样例
3
解决步骤
这是一个比较简单的题目,主要应用到数组,木有很多难点。
首先创建一个数组(为了防止方案数过大,将储存类型定为long long)
long long f[100];
接着我们需要知道台阶数量,这里就不演示了
因为第一个台阶只能有一种走法,所以我们要将f[0]和f[1]初始数值设为1
f[0] = f[1] = 1;
随后我们从第二个台阶走起,for循环从2开始,一直到台阶数量
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
因为我们一次可以跨上1或2个台阶,所以f[i]应该等于上一个台阶数量+ 上上个台阶数量
最后输出f[n]即可
完整代码
#include <iostream>
using namespace std;
long long f[100]; //方案数量储存
int main()
{
int n; //台阶数量
cin >> n;
f[0] = f[1] = 1; //第1个台阶只能有1种走法
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
cout << f[n] << endl; //走法数量
return 0;
}
(注:可以将f数组类型设为int)