用c++怎么写超级楼梯问题
时间: 2023-12-03 14:01:51 浏览: 206
超级楼梯问题是经典的动态规划问题,可以用递归或循环方式来实现。以下是C++循环实现的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int dp[n+1];
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
cout << dp[n] << endl;
return 0;
}
```
在该代码中,我们首先输入楼梯的总数n,然后定义一个长度为n+1的数组dp来存储每个楼梯的跳法数。由于第一步只能跳1或2个台阶,因此dp[0]和dp[1]的值都为1。接下来,我们使用循环来计算每个楼梯的跳法数,即dp[i] = dp[i-1] + dp[i-2],最终输出dp[n]即为超级楼梯问题的解。
阅读全文