package cn.fzm.demo1.array; import java.util.Scanner; /* * 需求:打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 经过观察发现以下规律: 1. arr[i][0] = 1; 2. arr[i][i] = 1; 3. arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; */ public class ArrayTest3 { public static void main(String[] args) { // 获取用户输入的层数 Scanner sc = new Scanner(System.in); System.out.println("请输入你想看到的杨辉三角的层数: "); int num = sc.nextInt(); // 生成相应层数的杨辉三角 int[][] arr = new int[num][]; for(int i = 0; i < num; i++) { arr[i] = new int[i + 1]; } // 赋值 for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { arr[i][0] = 1; arr[i][i] = 1; if(i > 1 && j > 0 && j < arr[i].length - 1) { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; } } } // 遍历杨辉三角 for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }