Java教程

java打印杨辉三角

本文主要是介绍java打印杨辉三角,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java打印杨辉三角

需求: 打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

​ 我们通过观察发现:
​ 1.每一行的第一列和最后一列都是1
​ 2.从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行本列之和

public static void printTriangle() {
      
        Scanner sc = new Scanner(System.in);
        System.out.print("输入杨辉三角行数: ");
        int n = sc.nextInt();

        int[][] arr = new int[n][n];

        //把每一行的第一列和最后一列设置成1
        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;
            arr[i][i] = 1;
        }

        //设置中间元素 : 从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
        for (int i = 2; i < arr.length; i++) {
            for (int j = 1; j <= i; j++) {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            }
        }

        //遍历二维数组
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }

        sc.close();

    }

简化版

    public static void printTriangle2() {

        Scanner sc = new Scanner(System.in);
        System.out.print("输入杨辉三角行数: ");
        int n = sc.nextInt();

        int[][] arr = new int[n][n];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) { //把每一行的第一列和最后一列设置成1
                    arr[i][j] = 1;

                } else { //设置中间元素 : 从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列之和
                    arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
                }
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }

        sc.close();
    }
这篇关于java打印杨辉三角的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!