动态规划-数字三角形递推算法 C语言
时间: 2023-12-17 08:28:25 浏览: 110
数字三角形-动态规划基础讲解
以下是C语言实现数字三角形递推算法的代码和注释:
```c
#include <stdio.h>
#define max_n 100
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int n, d[max_n + 5][max_n + 5] = {0}; // 定义数字三角形的行数n和二维数组d
scanf("%d", &n); // 输入数字三角形的行数n
for (int i = 1; i <= n; i++) { // 逐行输入数字三角形
for (int j = 1; j <= i; j++) {
scanf("%d", &d[i][j]);
}
}
for (int i = n - 1; i >= 1; i--) { // 逆序枚举每一行
for (int j = 1; j <= i; j++) { // 逐列计算d[i][j]
d[i][j] += max(d[i + 1][j], d[i + 1][j + 1]); // 根据递推公式计算d[i][j]
}
}
printf("%d\n", d[1][1]); // 输出数字三角形的最大和
return 0;
}
```
阅读全文