从下往上找
记录到当前的最大的数字和
#include<stdio.h>
int max(int a,int b) {
return a>b?a:b;
}
int main() {
int T;
scanf("%d",&T);
while(T--) {
int a[120][120]= {0};
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
for(int j=0; j<=i; j++)
scanf("%d",&a[i][j]);
for(int i=n-1; i>=0; i--)
for(int j=i; j>=0; j--)
a[i-1][j]=max(a[i-1][j]+a[i][j],a[i-1][j]+a[i][j+1]);
printf("%d
",a[0][0]);
}
return 0;
}
题目地址:【杭电】[2084]数塔