對于給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。573 88 1 02 7 4 44 5 2 6 5Example Output
30
01 | #include<stdio.h> |
02 | int max(int a, int b); |
03 | int main() |
04 | { |
05 | int a[101][101]; |
06 | int i, j, n; |
07 | scanf("%d", &n); |
08 | for(i = 1; i <= n; i++) |
09 | { |
10 | for(j = 1; j <= i; j++) |
11 | scanf("%d", &a[i][j]); |
12 | } |
13 | for(i = n - 1; i >= 1; i--) |
14 | { |
15 | for(j = i; j >= 1; j--) |
16 | a[i][j] += max(a[i+1][j], a[i+1][j+1]); |
17 | } |
18 | printf("%d/n", a[1][1]); |
19 | return 0; |
20 | } |
21 | int max(int a, int b) |
22 | { |
23 | if(a > b) |
24 | return a; |
25 | else |
26 | return b; |
27 | } |
新聞熱點
疑難解答