Ka的递推编程联系 Part1|数塔求最大值
就是这样一个数塔
输入n,数塔有n行,第i行有i个数字,如
7
3 7
8 1 0
2 7 4 4
4 5 2 6 5
找出一条经过的数字和最长的路径的数字和。。。
比如吧,
1
2 3
可以走1-2 可以走1-3
走1-2得3 走1-3得4
所以最终输出为4
以下为代码
1 #include<stdio.h>
2 int main()
3 {
4 int n,i,j;
5 int sco[100][100];
6 scanf("%d",&n);
7 for(i=0;i<n;i++) //n行循环n-1次
8 for(j=0;j<=i;j++) //j也同样n-1
9 scanf("%d",&sco[i][j]);
10 for(i=n-2;i>=0;i--) //从倒数第二行开始循环
11 for(j=0;j<=i;j++) //个数等于行数
12 {
13 sco[i+1][j]>sco[i+1][j+1]?sco[i][j]+=sco[i+1][j]:sco[i][j]+=sco[i+1][j+1];
14 }
15 printf("%d",sco[0][0]);
16 return 0;
17 }