径,使该路径所经过的数字的总和最大。
●每一步可沿左斜线向下或右斜线向下走;
●1<三角形行数≤100;
●三角形中的数字为整数0,1,…99;

(图3.1-1)
接下来描述整个三角形
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int i,j,m,n;
int[][] a=new int[100][100];
while(cin.hasNext()){
n=cin.nextInt();
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
a[i][j]=cin.nextInt();
if(n==1){
System.out.println(a[0][0]);
continue;
}
for(i=n-2;i>=0;i--)
for(j=0;j<=i;j++)
{
if(a[i+1][j]>a[i+1][j+1])
a[i][j]+=a[i+1][j];
else
a[i][j]+=a[i+1][j+1];
}
System.out.println(a[0][0]);
}
cin.close();
}
}
错误原因:第一次代码从最后一层推的,写的条件i=n-1,忽略了数组从a[0][0]开始,太久没敲代码不会思考了。。。