您的位置:首页 > 其它

POJ 1163 The Triangle 【水题】

2016-05-09 21:07 381 查看

The Triangle

Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)
Total Submission(s) : 1 Accepted Submission(s) : 1
[align=left]Problem Description[/align]

7
3   8
8   1   0
2   7   4   4
4   5   2   6   5

(Figure 1)


Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.

[align=left]Input[/align]
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100.
The numbers in the triangle, all integers, are between 0 and 99.

[align=left]Output[/align]
Your program is to write to standard output. The highest sum is written as an integer.

[align=left]Sample Input[/align]

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5


[align=left]Sample Output[/align]

30


翻译:
在这个矩阵中,从下向上加 ,找出求和最大的那一列的值

#include<stdio.h>
int bijiao (int a,int b)
{
if(a>b) return a;
if(a<=b) return b;//  两个>不行  两个带=的也不行 必须 一个大于 一个小于等于
}
int main (void)
{
int c,b;
int a[110][110];
while(~scanf("%d",&c))
{
for(int i=0;i<c;i++)
{
for(int j=0;j<=i;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int i=c-2;i>=0;i--)
{
for(int ii=0;ii<=i;ii++)
{
a[i][ii]=bijiao(a[i+1][ii]+a[i][ii],a[i+1][ii+1]+a[i][ii]);

}
}
printf("%d\n",a[0][0]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: