N阶楼梯上楼问题
Posted Just_for_Myself
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了N阶楼梯上楼问题相关的知识,希望对你有一定的参考价值。
题目截图:
思路:
可以用动态规划。令 dp[i] 表示 i 阶楼梯有多少种方法,则状态转移方程为:
dp[i] = dp[i-2] + dp[i-1], i≥3
边界:dp[1]=1, dp[2]=2。
代码如下:
1 /* 2 N阶楼梯上楼问题 3 */ 4 5 #include <stdio.h> 6 #include <string.h> 7 #include <math.h> 8 #include <stdlib.h> 9 #include <time.h> 10 #include <stdbool.h> 11 12 int dp[91]; 13 14 int main() { 15 // 边界 16 dp[1] = 1; 17 dp[2] = 2; 18 int i; 19 for(i=3; i<=90; ++i) { 20 // 状态转移方程 21 dp[i] = dp[i-2] + dp[i-1]; 22 } 23 int N; 24 while(scanf("%d", &N) != EOF) { 25 // 输出 26 printf("%d\\n", dp[N]); 27 } 28 29 return 0; 30 }
以上是关于N阶楼梯上楼问题的主要内容,如果未能解决你的问题,请参考以下文章