实现对称杨辉三角(Java篇)

本文介绍了使用Java在JDK8环境下,利用IDEA2021进行对称杨辉三角的实现。通过创建二维数组,根据数学规律初始化并填充,然后调整打印方式以确保对称性。文章详细讲解了主函数、初始化函数和打印函数的实现思路。
摘要由CSDN通过智能技术生成
实验环境:JDK8
实验工具:IDEA2021

实现思路:

准备用一个二维数组装载杨辉三角,默认给里面所有值先添0,由数学规律易得n行的杨辉三角有2 * n - 1列,先确定好每一行边界 1 的位置并且赋值,然后在两个1区间之间进行规律赋值,由此得出了一个大致的杨辉三角二维数组但却远远不够,我们必须得打印一个对称的杨辉三角。

那我们该怎么办呢?给所有的位置都给予相同的位置数不就好了吗,首先判断出当前杨辉三角的最大值的位数,比如最大值是126,此时位数为3位,打印的时候若遇见了0,就添加3个空格,若遇见两位数则输出该两位数再添加一个空格。

主函数:
public static void main(String[] args) {
   
        //行数1-1 2-3 3-5
		
        /* 杨辉三角:
        			1
         *         1 1
         *        1 2 1
         *       1 3 3 1
         * */
        int n = 23;
        // 初始化n行的杨辉三角
        int[][] arr = getInit(n);
        // 通过杨辉三角层数判断最大数的位数,为提前开辟新空间做准备
        int count = getNumDigitsByAll(arr, n);
        // 打印杨辉三角
        printTriangle(arr, n, count);
    }
结果如下:

在这里插入图片描述

初始化getInit函数:
 public static int[][] getInit(int n) {
   
        //列数
        int m = 2 * n - 1;
        int arr[][] = new int[n][m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值