多维数组的应用之杨辉三角
public class YangHuiTriangle {
/**
* 杨辉三角:
* 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,其他下一行的由同列的上一行及上一行的前一列相加。利用多维数组解决。
*
*/
public static void main(String[] args) {
YH(10);
}
public static void YH(int rank) {
int a = rank;
int[][] nums = new int[a][];
for (int j = 0; j < nums.length; j++) {
nums[j] = new int[j + 1];
}
for (int j = 0; j < nums.length; j++) {
nums[j][0] = 1;
nums[j][j] = 1;
if (j > 1) {
for (int k = 1; k < j; k++) {
nums[j][k] = nums[j - 1][k] + nums[j - 1][k - 1];
}
}
}
print(nums);
}
//打印
public static void print(int[][] nums) {
// 遍历数组
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
System.out.print("\t");
}
for (int j = 0; j < nums[i].length; j++) {
System.out.print("\t" + nums[i][j] + "\t");
}
System.out.println();
}
}
}