数字三角形问题

来源:互联网 发布:作图软件有哪些 编辑:程序博客网 时间:2024/06/06 04:26

数字三角形问题

给定一个由n行数字组成的数字三角形,设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。

#include <stdio.h>#define N 5int main(){    int i,j;    int a[N][N]={{7},{3,8},{8,1,0},{2,7,4,4},{4,5,2,6,5}};    for(i=N-1;i>=0;i--)        for(j=0;j<=i;j++){//循环比较第i行第j列的数和第j+1列的数的大小,第i-1行第j列的数(类似于节点)加比较之后的大数            if(a[i][j]>a[i][j+1])                a[i-1][j]+=a[i][j];            else                a[i-1][j]+=a[i][j+1];        }    printf("%d\n",a[0][0]);//输出最终的数}/*思路:    类似于二叉树    a    b  c    d  e  f      g  h  i  j    从下面两个数中,每次都取最大的一个数与上面的节点相加,所以依次加到最后一个即为最大。*/
原创粉丝点击