B——数字三角形问题
题目
#include<stdio.h> // 动态规划法求: 数字三角形—1730
int main()
{ int n,i,j,D[101][101], a[101][101];
scanf("%d",&n);
for (i=1; i<=n; i++) // 输入三角形
for(j=1; j<=i; j++)
scanf("%d",&D[i][j]);
for (j=1; j<=n; j++) // a 数组的第 N 行与 D 数组一致
a[n][j]=D[n][j];
for (i=n-1; i>=1; i--) // 从下向上计算 a 数组
for(j=1; j<=i; j++)
{ if (a[i+1][j] > a[i+1][j+1])
{ a[i][j] = a[i+1][j] + D[i][j]; }
else { a[i][j] = a[i+1][j+1] + D[i][j]; }
}
printf("%d\n",a[1][1]);
return 0;
}