@apiNote 杨辉三角 打印
解释
杨辉三角基本 规律 值为上一列对值 和 前一个值 的和
且首位都是1
我们可以通过二维数组来分析这个题目
package com.date808;
import java.util.Scanner;
/**
* @apiNote 杨辉三角 打印
* 解释
* 杨辉三角 只有六行 基本 规律 值为上一列对值 和 前一个值 的和
* 且首位都是1
* <p>
* 我们可以通过二维数组来分析这个题目
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
* <p>
* 理想打印效果 基础里边界1space
* 1 7space 6
* 1 1 6space 5
* 1 2 1 5space 4
* 1 3 3 1 4space 3
* 1 4 6 4 1 3space 2
* 1 5 10 10 5 1 2space 1
*/
public class TriangleTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int counter;
try {
counter = scanner.nextInt();
printTriangle(counter);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void printTriangle(int number) {
int[][] arr = new int[number][number];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (j == 0) {
arr[i][j] = 1;
}
if (i == j) {
arr[i][j] = 1;
}
if (i > 0 && j > 0) {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
int temp=number;
for (int m = 0; m < arr.length ; m++) {
for (int j=temp;j>0;j--){
System.out.print(" ");
}
for (int k = 0; k <= m; k++) {
System.out.print(arr[m][k] + " ");
}
System.out.println();
temp--;
}
for (int[] a : arr) {
for (int b : a) {
if (b!=0){
System.out.print(b + " ");
}
}
System.out.println();
}
}
}