题目描述:
示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 每一步可沿左斜线向下或右斜线向下走; 1< 三角形行数< 25; 三角形中的数字为整数< 1000;
代码:
- package lanqiao;
-
- import java.util.*;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- int[][] arr = new int[n][n];
- for(int i = 0;i < n;i ++)
- {
- for(int j = 0;j <= i;j ++)
- {
- arr[i][j] = sc.nextInt();
- }
- }
-
- for(int i = n - 2;i >= 0;i --)
- {
- for(int j = 0;j <= i;j ++)
- {
- arr[i][j] += Math.max(arr[i + 1][j],arr[i + 1][j + 1]);
- }
- }
-
- System.out.println(arr[0][0]);
- }
- }