徑,使該路徑所經過的數字的總和最大。
●每一步可沿左斜線向下或右斜線向下走;
●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]開始,太久沒敲代碼不會思考了。。。