由题意得:
1.输入一个“n”,再输入n行数字,每行数字的个数与行数相等
2.由于是输出最大的和,由上往下找最大和,路线是越来越多;而由下往上找最大和,路线就是越来越少
3.代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 101
int n,dp[maxn][maxn],maxsum[maxn];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>dp[i][j];
for(int i=1;i<=n;i++)
maxsum[i]=dp[n][i];//存最后一组数据
for(int i=n-1;i>=1;i--)
for(int j=1;j<=i;j++)
maxsum[j]=max(maxsum[j],maxsum[j+1])+dp[i][j];//更新最后一组前(i+1)个数据
cout<<maxsum[1];
return 0;
}