public class YangHuiTriangle {
public static void main(String[] args) {
print(10);
}
public static void print(int num) {
int[][] arr = new int[num][];
for (int i = 0; i < num; i++) {
// 第一行有 1 个元素, 第 n 行有 n 个元素
arr[i] = new int[i + 1];
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (j == 0 || i == j) {
// 每一行的第一个元素和最后一个元素都是 1
arr[i][j] = 1;
} else {
/*
从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
arr[i][j]=此元素的同一列上一行的元素+此元素左边一列上一行的元素
*/
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
for (int[] a :
arr) {
System.out.println(Arrays.toString(a));
}
}
}
代码2
public class YangHuiTriangle2 {
public static void main(String[] args) {
print(10);
}
public static void print(int num) {
int[][] arr = new int[num][];
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i + 1];
// 首末元素为1
arr[i][0] = arr[i][i] = 1;
// 从第二个元素开始到倒数第二个元素
for (int j = 1; j < arr[i].length - 1; j++) {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
for (int[] a :
arr) {
System.out.println(Arrays.toString(a));
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)