随笔 - 2  文章 - 0  评论 - 0  阅读 - 323

java打印杨辉三角

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")        }
    }

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

posted on   cirer  阅读(295)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示