-
杨辉三角
public class YangHui1 {
public static void main(String[] args) {
/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
-----------------
1
11
121
1331
14641
*/
int layer = 5;
int[][] arr = new int[layer][];
// 初始化二维数组
for (int i = 0; i < layer; i++) {
arr[i] = new int[i + 1];
}
// 第一行和第二行都是1
arr[0][0] = 1;
arr[1][0] = 1;
arr[1][1] = 1;
// 其余行规律是, 每一行的第一个和最后一个都是1
for (int i = 2; i < layer; i++) {
arr[i][0] = 1;
arr[i][arr[i].length - 1] = 1;
}
// 中间的数是"上一行"和"上一行上一列"的数的和
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] == 0) {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
// 整理格式进行输出
for (int i = 0; i < arr.length; i++) {
// 输出前面的空格
for (int j = 0; j < layer - i - 1; j++) {
System.out.print(" ");
}
// 输出数组内容
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
运行结果: