二维数组和杨辉三角
二维数组和杨辉三角

public class Test2 {
//二维数组
public static void main(String[] args) {
int nums[][] = new int[9][];
nums[2] = new int[5];
nums[3] = new int[6];
nums[4] = new int[7];
int[][] nums1 = {{1, 2,46}, {8, 9}, {41, 52,5}};
for (int i = 0; i < nums1.length; i++) {
for (int j = 0; j < nums1[i].length; j++) {
System.out.print(nums1[i][j]);
}
System.out.println();
}
}
}

public class YangHuiSanJiao {
public static void main(String[] args) {
//杨辉三角高度
int high = 10;
//new一个二维数组建三角
int [][] nums = new int[high][];
for (int i = 0; i < high; i++) {
nums[i] = new int[i+1];
}
//填充两边的1
for (int i = 0; i < high; i++) {
nums[i][0] = 1;
nums[i][nums[i].length-1] = 1;
}
//从第三层开始计算 nums[n][i] = nums[n-1][i-1] + nums[n-1][i]
for (int i = 2; i < nums.length; i++) {
for (int j = 1; j < nums[i].length-1; j++) {
nums[i][j] = nums[i-1][j-1] + nums[i-1][j];
}
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
System.out.print(nums[i][j]+" ");
}
System.out.println();
}
}
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Process finished with exit code 0
用if+else优化后的代码
public class YangHuiSanJiao {
public static void main(String[] args) {
//杨辉三角高度
int high = 12;
//new一个二维数组建三角
int[][] nums = new int[high][];
for (int i = 0; i < high; i++) {
nums[i] = new int[i + 1];
}
//填充两边的1
for (int i = 0; i < high; i++) {
nums[i][0] = 1;
nums[i][nums[i].length - 1] = 1;
}
//从第三层开始计算 nums[n][i] = nums[n-1][i-1] + nums[n-1][i]
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length - 1; j++) {
if (j == 0 || j == nums[i].length - 1) {
nums[i][j] = 1;
} else {
nums[i][j] = nums[i - 1][j - 1] + nums[i - 1][j];
}
}
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
System.out.print(nums[i][j]+" ");
}
System.out.println();
}
}
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
Process finished with exit code 0

浙公网安备 33010602011771号