题目链接:
3.数字三角形 - 蓝桥云课 (lanqiao.cn)
代码解释:
# include <iostream>
using namespace std;
const int MAX = 200;
int a[MAX][MAX] = {0}, c[MAX][MAX] = {0};
int main()
{
int n;
cin>>n;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
cin>>a[i][j];
}
}
c[1][1] = a[1][1];
for(int i = 2; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
c[i][j] = a[i][j] + max(c[i - 1][j] , c[i - 1][j - 1]);
}
}
cout<<max(c[n][(n + 1) / 2], c[n][(n + 2) / 2]);
return 0;
}
代码解释图片

这篇文章详细介绍了如何使用C++编程语言解决数字三角形问题,通过动态规划方法计算从左上角到右下角的最大路径和。代码展示了如何遍历矩阵并更新每个位置的值以求得最终结果。
4583

被折叠的 条评论
为什么被折叠?



