*1
*1 1
*1 2 1
*1 3 3 1
*1 4 6 4 1
1 5 10 10 5 1
Scanner scanner = new Scanner(System.in);
System.out.print("请输入杨辉三角形的行数:");
int n = scanner.nextInt();
// 定义一个二维数组
int[][] yanghui = new int[n][n];
// 给第一列和最后一列赋值为1
for (int i = 0; i < n; i++) {
yanghui[i][0] = 1;
yanghui[i][i] = 1;
}
// 按照规律给其他元素赋值
for (int i = 2; i < n; i++) {
for (int j = 1; j < i; j++) {
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
}
}
int[][] nums = new int[6][];
for (int i = 0; i < nums.length; i++) {
nums[i] = new int[i + 1];
Arrays.fill(nums[i], 1); // 每一个元素都是 1
// j = 1 每行的第一个元素跳过, j < nums[i].length - 1 跳过最后一个 i > 1 跳过前两行
for (int j = 1; i > 1 && j < nums[i].length - 1; j++) {
nums[i][j] = nums[i - 1][j] + nums[i - 1][j - 1];
}
}
for (int i = 0; i < nums.length; i++) {
System.out.println(Arrays.toString(nums[i]));
}
首先,创建名为nums的二维数组,其长度为6。
然后,通过两个嵌套的for循环来填充这个二维数组。外层循环遍历每一行,内层循环遍历每一列。
在内层循环中,如果当前列的索引j等于0或等于该行的最后一个元素的索引(即第一个或最后一个元素),则将该元素的值设置为1。
否则,将该元素的值设置为其上方元素和左上方元素的和。这样可以确保生成的二维数组是一个杨辉三角。
最后,通过另一个for循环打印出这个二维数组的每个元素。