Problem P07. [算法课动态规划]爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。(n是正整数)每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
输入
第一行输入阶数n (1<=n<=20)
输出
输出总共多少种走法
样例
标准输入复制文本 |
3 |
标准输出复制文本 |
3 |
标准输入复制文本 |
5 |
标准输出复制文本 |
8 |
标准输入复制文本 |
15 |
标准输出复制文本 |
987 |
提示
斐波那契数列
#include<iostream>
using namespace std;
int lift(int n) {
if (n == 1 || n == 0 || n == 2 || n == 3)
{
return n;
}
if (n > 3)
{
int a = 1;
int b = 2;
int temp = 0;
for (int i = 3; i < n + 1; i++) {
temp = a + b;
a = b;
b = temp;
}
return temp;
}
}
int main()
{
int n;
cin >> n;
if (n > 0 && n < 21)
{
cout << lift(n);
}
return 0;
}