解题思路:数塔问题。从倒数第二行开始求当前行对应位置与下一行对应位置的两个数最大值之和,一直到第一行,则第一个就是所求数据。
参考代码:
#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语言代码)浏览:883 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:759 |
成绩转换 (C语言代码)浏览:1006 |
程序员的表白 (C语言代码)浏览:666 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:595 |
计算质因子 (C语言代码)浏览:707 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:566 |
10月月赛题解浏览:536 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:573 |