美文网首页
Java编写杨辉三角

Java编写杨辉三角

作者: 黑咔 | 来源:发表于2019-12-06 03:06 被阅读0次

使用二维数组打印一个 10 行杨辉三角。

逻辑:
1.第一行有 1 个元素, 第 n 行有 n 个元素
2.每一行的第一个元素和最后一个元素都是 1
3.从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];

    public static void main(String[] args) {
        //1.声明并初始化二维数组
        int[][] yanghui = new int[10][];

        //2.给数组的元素赋值
        for (int i = 0; i <= yanghui.length - 1; i++) {
            yanghui[i] = new int[i + 1];

            //2.1 给首末元素赋值
            yanghui[i][0] = yanghui[i][i] = 1;

            //2.2 给每行的非首末元素赋值
            //if (i >= 2) {
                for (int j = 1; j <= yanghui[i].length - 2; j++) {
                    yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];
                }
            }
        //}

        //3.遍历二维数组,输出等腰三角形的杨辉三角
        for (int i = 0; i < yanghui.length; i++) {
            if (i != yanghui.length - 1) { //最后一行不需要空出格子
                // 第一行空出 (6/2)*9个格子,第二行空出 (6/2)*8个格子,以此类推...
                System.out.printf("%" + (3 * ((yanghui.length - 1) - i)) + "s", "");
            }
            // 空出格子后,再输出内容
            for (int j = 0; j < yanghui[i].length; j++) {
                //每次输出的内容都占用6个格子
                System.out.printf("%-6s", yanghui[i][j]);
            }
            System.out.println();
        }
    }

相关文章

网友评论

      本文标题:Java编写杨辉三角

      本文链接:https://www.haomeiwen.com/subject/nssmwctx.html