动态规划爬楼梯问题C语言代码
时间: 2023-07-08 15:20:26 浏览: 130
C#爬楼梯代码
好的,下面是一个简单的动态规划爬楼梯问题的C语言代码实现:
```c
#include <stdio.h>
int climbStairs(int n) {
if (n <= 1) {
return 1;
}
int dp[n+1];
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];
}
int main() {
int n = 5;
printf("爬到第%d层楼梯的方案数为:%d\n", n, climbStairs(n));
return 0;
}
```
在这个代码中,我们定义了一个 `climbStairs` 函数,这个函数接收一个参数 `n`,表示要爬到第 `n` 层楼梯的方案数。首先判断如果 `n` 小于等于1,则只有一种方案,直接返回1。接着定义一个长度为 `n+1` 的数组 `dp`,用于存储不同层数的方案数。初始化 `dp[0]` 和 `dp[1]` 为1,然后用循环计算出从第2层到第n层的方案数,最后返回 `dp[n]` 即可。
在 `main` 函数中,我们测试了一个 `n` 等于5的例子,输出了爬到第5层楼梯的方案数。
阅读全文