题解 | #N阶楼梯上楼问题#
N阶楼梯上楼问题
https://www.nowcoder.com/practice/c978e3375b404d598f1808e4f89ac551
不同顺序也算一种,eg:1,1,2;1,2,1;2,1,1;算三种。
创建状态数组dp[N],存储N阶楼梯上楼的方案,其中下标0舍弃,方便使用。
#include <iostream> using namespace std; #define N 90 int main(){ int dp[N]={0,1,2,0}; //第一阶台阶方案是1,第二阶台阶方案数2 int n; while(cin >> n && n>=1){ int i; for (i = 3;i<=n;i++){ //从第三节台阶开始算 dp[i] = dp[i-1]+dp[i-2]; } cout <<dp[n]<<endl; } }