如图就是一个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();}}
}
结果展示: