java杨辉三角形

java杨辉三角形,第1张

题目

代码1
public class YangHuiTriangle {
    public static void main(String[] args) {
        print(10);
    }

    public static void print(int num) {
        int[][] arr = new int[num][];
        for (int i = 0; i < num; i++) {
//            第一行有 1 个元素, 第 n 行有 n 个元素
            arr[i] = new int[i + 1];
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (j == 0 || i == j) {
// 每一行的第一个元素和最后一个元素都是 1
                    arr[i][j] = 1;
                } else {
                    /* 
从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
arr[i][j]=此元素的同一列上一行的元素+此元素左边一列上一行的元素
*/
                    arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
                }
            }
        }
        for (int[] a :
                arr) {
            System.out.println(Arrays.toString(a));
        }
    }
}

代码2
public class YangHuiTriangle2 {
    public static void main(String[] args) {
        print(10);
    }

    public static void print(int num) {
        int[][] arr = new int[num][];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i + 1];
//            首末元素为1
            arr[i][0] = arr[i][i] = 1;
//                从第二个元素开始到倒数第二个元素
                for (int j = 1; j < arr[i].length - 1; j++) {
                    arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
            }
        }

        for (int[] a :
                arr) {
            System.out.println(Arrays.toString(a));
        }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/877249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存