public class 杨辉三角 {
public static void main(String[] args) {
// M1();
// M2();
M3();
}
private static void M3() { // 最优解
int[][] iArray = new int[10][];
for (int i = 0; i < 10; i++) {
iArray[i] = new int[i + 1];
for (int k = 9; k > i; k--) {
System.out.print(" ");
}
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
iArray[i][j] = 1;
System.out.print(iArray[i][j] + " ");
} else {
iArray[i][j] = iArray[i - 1][j] + iArray[i - 1][j - 1];
System.out.print(iArray[i][j] + " ");
}
}
System.out.println();// 换行
}
}
private static void M2() {
int[][] pas = new int[8][8];
for (int i = 0; i < pas.length; i++) {
pas[i][0] = 1;
pas[i][i] = 1;
for (int j = 1; j < i; j++) {
pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j];
}
}
for (int i = 0; i < pas.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(String.format("%-5d", pas[i][j]));
}
System.out.println(" ");
}
}
private static void M1() {
int n = 8;
int[][] arr = new int[n][n];
for (int i = 0; i < arr.length; i++) {
for (int k = arr.length; k > i; k--) {
System.out.print(" ");
}
for (int j = 0; j < i; j++) {
if (i == j || j == 0) {
arr[i][j] = 1;
System.out.print(arr[i][j] + " ");
} else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
System.out.print(arr[i][j] + " ");
}
}
System.out.println();
}
}
}