动态规划——数字三角形问题

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;
}

猜你喜欢

转载自blog.csdn.net/wjt_1025/article/details/89526160