/* 需求:打印楊輝三角形(行數能夠鍵盤錄入) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 分析:看這種圖像的規律 A:任何一行的第一列和最後一列都是1 B:從第三行開始,每個數據是它上一行的前一列和它上一行的本列之和。 步驟: A:首先定義一個二維數組。行數若是是n,咱們把列數也先定義爲n。 這個n的數據來自於鍵盤錄入。 B:給這個二維數組任何一行的第一列和最後一列賦值爲1 C:按照規律給其餘元素賦值 從第三行開始,每個數據是它上一行的前一列和它上一行的本列之和。 D:遍歷這個二維數組。 */ import java.util.Scanner; class Arr3{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("請輸入第一個數據"); int n = sc.nextInt(); int[][] arr = new int[n][n]; for(int x=0;x<arr.length;x++){ arr[x][0]=1; arr[x][x]=1; } for(int x=2;x<arr.length;x++){ for(int y=1;y<arr[x].length;y++){ arr[x][y]=arr[x-1][y-1]+arr[x-1][y]; } } //遍歷數組 for(int x=0;x<arr.length;x++){ for(int y=0;y<=x;x++){ System.out.print(arr[x][y]); } System.out.println(); } } }
報錯:
D:\Java學習\記錄\Arr例題>javac Arr3.javajava
D:\Java學習\記錄\Arr例題>java Arr3
請輸入第一個數據
5
11111Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Arr3.main(Arr3.java:48)數組