题解 | #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;
}
}