m0_71695206 2022-09-04 22:41 采纳率: 78.6%
浏览 99
已结题

JAVA输出杨辉三角前十行元素

public class yanghui {

public static void main(String[] args) {

    int [][] a=new int[10][];

    int i=0,j=0;

    for(i=0;i<10;i++)

    {

        a[i]=new int [i+1];      //分别为每一行分配不同的空间大小

        while(i<2)   

    {

        for(j=0;j<i+1;j++);

        {

            a[i][j]=1;  

            System.out.print(a[i][j]);

        }

        System.out.println();

    }

        while(i>=2)    

        {

            for(j=1;j<i+1;j++)

            {

                a[i][0]=1;   

                a[i][i]=1;    

                if(j<i)     //每行除去首末两元素,中间元素的赋值语句

                {

                    a[i][j]=a[i-1][j]+a[i-1][j-1];     //中间元素的值等于同一列上一个元素加上同一列上一个元素的左边的元素之和

                    System.out.print(a[i][j]);

                }

            }

            System.out.println();

        }

    }

}

}

求解此代码的问题! 输入杨辉三角前十行,为什么显示数组越界?

  • 写回答

2条回答 默认 最新

  • 熬夜磕代码丶 Java领域优质创作者 2022-09-05 08:55
    关注
    
    public static void main(String[] args) {
            int[][] arr = new int[10][10];
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j <= i; j++) {
                    if(j == 0 || i == j) {
                        arr[i][j] = 1;
                    }else {
                        arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
                    }
                }
            }
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j <= i; j++) {
                    System.out.print(arr[i][j] + " ");
                }
                System.out.println();
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月10日
  • 已采纳回答 2月2日
  • 创建了问题 9月4日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失