大数据卷神 2022-12-15 10:10 采纳率: 100%
浏览 48
已结题

java写杨辉三角时,为什么最后一行用for循环输出不改变之前的值呢?

java写杨辉三角时,为什么最后一行用for循环输出不改变之前的值呢?这个感觉不清楚,感谢大家解答
代码如下
/*
* 使用二维数组打印一个 10 行杨辉三角.
  1
  1 1
  1 2 1
  1 3 3  1
  1 4 6  4  1
  1 5 10 10 5 1
   ....
开发提示
1. 第一行有 1 个元素, 第 n 行有 n 个元素
2. 每一行的第一个元素和最后一个元素都是 1
3. 从第三行开始, 对于非第一个元素和最后一个元素的元素.
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
 */
public class ArrayExer4 {
    public static void main(String[] args) {
        //声明一个二维数组,用来存储杨辉三角的数字,一共10行
        int[][] yangHui = new int[10][];

        for (int i = 0; i < yangHui.length; i++) {
            //先确定每一行的列数
            yangHui[i] = new int[i+1];

            //每一行的第一个元素和最后一个元素都是 1
            yangHui[i][0] = 1;
            yangHui[i][i] = 1; //yangHui[i][yangHui[i].length-1] = 1;


            //再确定每一行的每一列的值
            for (int j = 1; j < yangHui[i].length - 1; j++) {
                yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
            }

        }

        //输出
        for (int i = 0; i < yangHui.length; i++) {
            for (int j = 0; j < yangHui[i].length; j++) {
                System.out.print(yangHui[i][j] + "\t");
            }
            System.out.println();
        }

    }
}

运行结果为:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

  • 写回答

4条回答 默认 最新

  • 阳光宅男xxb 2022-12-15 10:26
    关注

    你最后两个for循环只是循环输出了一下数组中的值,不会改变数组中的值,其次最后一行System.out.println();只是起到一个换行的作用,使得你最后的形式是一行一行的,否则所有数据会全部在一行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月15日