求大神

/*

    需求:打印杨辉三角形(行数可以键盘录入)
    
    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[x][0]=1;
            arr[x][x]=1;
        }
        
        for(int x=2;x){
            for(int y=1;y){
                arr[x][y]=arr[x-1][y-1]+arr[x-1][y];
            }
        }
    
    
        //遍历数组
        for(int x=0;x){
            for(int y=0;y<=x;x++){
                System.out.print(arr[x][y]);
            }
            System.out.println();
        }
        
    }
}

报错:

D:\Java学习\记录\Arr例题>javac Arr3.java

 
  

D:\Java学习\记录\Arr例题>java Arr3
请输入第一个数据
5
11111Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Arr3.main(Arr3.java:48)

 
 

 

你可能感兴趣的:(求大神)