首页 > 编程语言 >java打印杨辉三角

java打印杨辉三角

时间:2022-11-25 16:58:52浏览次数:45  
标签:java int 打印 cell ++ 二维 杨辉三角 方法

java打印杨辉三角

方法一使用二维数组的方法:

import java.util.Scanner;
public class YangHui1 {
    public static void main(String[] args) {
        /*杨辉三角如下
        1
        1 1
        1 2 1
        1 3 3 1
        ……
         */
        //使用二维数组的方式打印杨辉三角
        Scanner scanner = new Scanner(System.in);
        int row = scanner.nextInt();
        int[][] arr = new int[row][row];//创建二维数组
        for (int i = 1; i < row; i++) {
            for (int j = 1; j <=i; j++) {
                if (j == 1 || j == i)
                    arr[i][j] = 1;//杨辉三角的第一行以及对角线都是1(赋值)
                else
                    //杨辉三角的值特征除第一行和对角线元素外元素值等于上一行上一个元素和前面元素和
                    arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            }
        }
        for (int i = 1; i <row; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println("");
        }
    }

方法一能够实现杨辉三角,但是却浪费二维数组一半的方法。因此方法二为杨辉三角改良版

方法二使用二维数组的方法:

 private static final int N=10;//此处为最终类为测试服务
    public static void main(String[] args) {
        int[][] cell = new int[N][];//创建二维数组 只是创建行
        for (int i = 0; i < N; i++) //创建列
            cell[i] = new int[i + 1];
        for (int i = 0; i < N; i++)
            cell[i][0] = cell[i][i] = 1;//此处为将第一列和对角线都设置为1
        for (int i = 2; i < N; i++)
            for (int j = 1; j < i; j++)
         //此处为实现杨辉三角除第一列元素和对角线元素的方法。同方法一
           cell[i][j] = cell[i - 1][j - 1] + cell[i - 1][j];
        for (int i = 0; i <N; i++) {
            for (int j = 0; j <=i ; j++)
                System.out.format("%-6d",cell[i][j]);
            System.out.print("\n")        }
    }

以上方法都是利用二维数组来实现的杨辉三角的方法。两个方法相比较而言,第二个方法会比第一个方法更加节省空间。节省空间复杂度

标签:java,int,打印,cell,++,二维,杨辉三角,方法
From: https://www.cnblogs.com/crier/p/16925644.html

相关文章