用java利用随机1~9整数生成3*3的二维数组,使二维数组每行,每列、以及斜线上的数字之和均为15,并输出这个二维数组
时间: 2023-05-18 07:02:34 浏览: 172
疯狂java讲义课后习题答案
4星 · 用户满意度95%
好的,我可以回答这个问题。以下是用 Java 生成符合要求的二维数组的代码:
```java
import java.util.Arrays;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[][] arr = new int[3][3];
Random rand = new Random();
// 随机生成1~9的数字填充二维数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = rand.nextInt(9) + 1;
}
}
// 计算每行、每列、每条对角线的和
int[] rowSum = new int[3];
int[] colSum = new int[3];
int diagSum1 = 0;
int diagSum2 = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
rowSum[i] += arr[i][j];
colSum[j] += arr[i][j];
if (i == j) {
diagSum1 += arr[i][j];
}
if (i + j == 2) {
diagSum2 += arr[i][j];
}
}
}
// 如果每行、每列、每条对角线的和都为15,则输出二维数组
if (rowSum[0] == 15 && rowSum[1] == 15 && rowSum[2] == 15
&& colSum[0] == 15 && colSum[1] == 15 && colSum[2] == 15
&& diagSum1 == 15 && diagSum2 == 15) {
for (int i = 0; i < 3; i++) {
System.out.println(Arrays.toString(arr[i]));
}
} else {
// 如果不符合要求,则重新生成二维数组
main(args);
}
}
}
```
这段代码会不断生成随机的二维数组,直到符合要求为止。每次生成二维数组时,都会计算每行、每列、每条对角线的和,如果都为15,则输出二维数组。如果不符合要求,则重新生成二维数组,直到符合要求为止。
阅读全文