题目地址:
https://www.acwing.com/problem/content/description/823/
一个楼梯共有 n n n级台阶,每次可以走一级或者两级,问从第 0 0 0级台阶走到第 n n n级台阶一共有多少种方案。
输入格式:
共一行,包含一个整数
n
n
n。
输出格式:
共一行,包含一个整数,表示方案数。
数据范围:
1
≤
n
≤
15
1≤n≤15
1≤n≤15
按最后一步跳几级递推即可。代码如下:
#include <iostream>
using namespace std;
const int N = 20;
int f[N];
int main() {
int n;
cin >> n;
f[1] = 1, f[2] = 2;
for (int i = 3; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
cout << f[n] << endl;
return 0;
}
时空复杂度 O ( n ) O(n) O(n)。