cpp题目描述树老师爬楼梯他可以每次走 11 级或者 22 级输入楼梯的级数求不同的走法数例如:楼梯一共有 33 级他可以每次都走一级或者第一次走一级第二次走两级也可以第一次走两级第二次走一级一共 33 种方法。输入格式输入包含若干行每行包含一个正整数 �N代表楼梯级数。输出格式不同的走法数每一行输入对应一行输出输入输出样例样例 1输入样例 复制5810输出样例 复制83489数据范围与提示1=�
解题思路: 对于每个楼梯级数N,可以使用动态规划的方法求解。 定义状态dp[i]表示走到第i级楼梯的不同走法数。 根据题意,可以得到状态转移方程: dp[i] = dp[i-1] + dp[i-2] 其中,dp[1] = 1,dp[2] = 2。 最终的结果即为dp[N]。
代码实现:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> dp(31, 0);
dp[1] = 1;
dp[2] = 2;
int N;
while (cin >> N) {
for (int i = 3; i <= N; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
cout << dp[N] << endl;
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/i7xo 著作权归作者所有。请勿转载和采集!