#include<stdio.h>
int str[351][351];
int main()
{
int n,i,j;
// freopen("e://2.txt","r",stdin);
scanf("%d",&n);
for( i=0;i<n;i++)
for( j=0;j<=i;j++)
scanf("%d",&str[i][j]);
for(i=n-2;i>=0;i--)
for(j=0;j<=i;j++)
{
if(str[i+1][j]>str[i+1][j+1])
str[i][j]+=str[i+1][j];
else str[i][j]+=str[i+1][j+1];
}
printf("%d\n",str[0][0]);
}
int str[351][351];
int main()
{
int n,i,j;
// freopen("e://2.txt","r",stdin);
scanf("%d",&n);
for( i=0;i<n;i++)
for( j=0;j<=i;j++)
scanf("%d",&str[i][j]);
for(i=n-2;i>=0;i--)
for(j=0;j<=i;j++)
{
if(str[i+1][j]>str[i+1][j+1])
str[i][j]+=str[i+1][j];
else str[i][j]+=str[i+1][j+1];
}
printf("%d\n",str[0][0]);
}
本文介绍了一个使用动态规划解决三角形路径最大和问题的C语言程序实例。该程序通过输入一个三角形各层节点数值,利用动态规划算法自底向上计算从顶部到底部的最大路径和。
4942

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



