Java编写杨辉三角

编程知识 更新时间:2023-04-07 01:19:40

如图就是一个7层的杨辉三角,今天我们就用Java来编写这样一个杨辉三角。我还是把这个过程分为几个小的步骤来完成。

一、编写一个二维数组

通过观察,我们可以知道这样一个杨辉三角其实就是每行列数不同的二维数组,且第i行的列数其实就是i,据此我们可以先构建一个列数不同的杨辉三角。

//创建数组
        int[][] arr = new int[nums][];
        for (int i = 0;i<nums;i++) {
            arr[i] = new int[i+1];
        }

二、初始化边框

仍然观察上面那个图,我们可以看出每行的第一个数和最后一个数都是1,那么这里我们可以利用一个循环将刚才创建的数组中每行的第一个数和最后一个数设置为1.

//初始化边框
        for (int i = 0;i<nums;i++) {
            arr[i][0] = 1;
            arr[i][i] = 1;
        }

三、完善内部

继续观察上图,我们可以发现,从第三层开始,内部的第j个数的值都等于上一行的第j-1个数的值加第j个数的值的和。即。据此我们可以将杨辉三角的内部完善。

//完善内部
        for (int i = 2;i<nums;i++){
            for(int j = 1;j<i;j++){
                arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
            }
        }

以上便是用Java来编写一个杨辉三角的全过程了,完整代码如下:

import java.util.Scanner;
public class BitOperator {
    //编写一个main方法
    public static void main(String[] args){
        Scanner myScanner = new Scanner(System.in);
        System.out.print("输入杨辉三角的层数:");
        int nums = myScanner.nextInt();

        //创建数组
        int[][] arr = new int[nums][];
        for (int i = 0;i<nums;i++) {
            arr[i] = new int[i+1];
        }

        //初始化边框
        for (int i = 0;i<nums;i++) {
            arr[i][0] = 1;
            arr[i][i] = 1;
        }

        //完善内部
        for (int i = 2;i<nums;i++){
            for(int j = 1;j<i;j++){
                arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
            }
        }

        //遍历这个杨辉三角
        System.out.println("====杨辉三角如下====");
        for (int i = 0;i<nums;i++) {
            for (int k = nums-i-1;k>0;k--){
                System.out.print(" ");
            }
            for (int j = 0;j<=i;j++){
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }

    }
}

结果展示:

 

更多推荐

Java编写杨辉三角

本文发布于:2023-04-07 01:19:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/c9e199a8d8ac8656b92e3c636eeb68f5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:杨辉三角   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 51553文章数
  • 14阅读数
  • 0评论数