解题思路:数塔问题。从倒数第二行开始求当前行对应位置与下一行对应位置的两个数最大值之和,一直到第一行,则第一个就是所求数据。
参考代码:
#include <stdio.h> #include <math.h> int max(int x,int y) { if(x>y) return x; else return y; } int main() { int a[100][100]={0}; int i,j,n,count,k; scanf("%d",&count);//测试次数 for(k=1;k<=count;k++) { scanf("%d",&n); //行数 for(i=0;i<n;i++) for(j=0;j<=i;j++) scanf("%d",&a[i][j]); for(i=n-2;i>=0;i--) for(j=0;j<=i;j++) a[i][j]+=max(a[i+1][j],a[i+1][j+1]); printf("%d\n",a[0][0]); } return 0; }
0.0分
2 人评分
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:644 |
【亲和数】 (C语言代码)浏览:492 |
哥德巴赫曾猜测 (C语言代码)浏览:994 |
C语言训练-排序问题<1> (C语言代码)浏览:599 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:746 |
兰顿蚂蚁 (C++代码)浏览:1044 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:694 |
1642题解浏览:708 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:664 |