动态规划解决爬楼梯 c语言代码
时间: 2024-06-01 21:06:32 浏览: 136
C#爬楼梯代码
动态规划是解决爬楼梯问题的一种常用方法。这个问题可以用以下的状态转移方程进行求解:
dp[i] = dp[i-1] + dp[i-2]
其中dp[i]表示爬到第i级楼梯的方法数,dp = 1,dp = 2。根据状态转移方程,我们可以依次求得dp、dp、dp……一直到dp[n]。最终答案就是dp[n]。
下面是C语言代码实现:
```
#include <stdio.h>
int climbStairs(int n) {
if(n <= 2) return n;
int dp1 = 1, dp2 = 2, dp3;
for(int i = 3; i <= n; i++){
dp3 = dp1 + dp2;
dp1 = dp2;
dp2 = dp3;
}
return dp3;
}
int main(){
int n = 10;
printf("爬%d阶楼梯的方法数为%d\n", n, climbStairs(n));
return 0;
}
```
阅读全文