用Java定义一个三行三列的二维数组,要求每行之和等于每列之和
答案:1 悬赏:40 手机版
解决时间 2021-03-22 20:46
- 提问者网友:謫仙
- 2021-03-22 09:21
用Java定义一个三行三列的二维数组,要求每行之和等于每列之和
最佳答案
- 五星知识达人网友:污到你湿
- 2021-03-22 10:00
其实就是魔术方阵。。。
给你写了个比较通用的哈。。
public class MagicSquare {
//注意只能产生奇数的魔术方阵 偶数的规律不一样
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] square = generateSquare(3);
for(int[] nums : square) {
for(int num : nums) {
System.out.printf("%-4d", num);
}
System.out.println();
}
}
//产生魔术方阵的方法 注意只能是奇数方阵哈 参数count就是你想要产生几阶的
public static int[][] generateSquare(int count) {
int[][] square = new int[count][count];
int row = 0;
int col = count / 2;
square[row][col] = 1;
for(int i = 2; i <= count * count; i++) {
row--;
col--;
if(row < 0) {
row = count - 1;
}
if(col < 0) {
col = count - 1;
}
if(square[row][col] != 0) {
if(row == count - 1) {
row = 0;
} else {
row++;
}
if(col == count - 1) {
col = 0;
} else {
col++;
}
row++;
if(row > count - 1) {
row = 0;
}
}
square[row][col] = i;
}
return square;
}
}
给你写了个比较通用的哈。。
public class MagicSquare {
//注意只能产生奇数的魔术方阵 偶数的规律不一样
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] square = generateSquare(3);
for(int[] nums : square) {
for(int num : nums) {
System.out.printf("%-4d", num);
}
System.out.println();
}
}
//产生魔术方阵的方法 注意只能是奇数方阵哈 参数count就是你想要产生几阶的
public static int[][] generateSquare(int count) {
int[][] square = new int[count][count];
int row = 0;
int col = count / 2;
square[row][col] = 1;
for(int i = 2; i <= count * count; i++) {
row--;
col--;
if(row < 0) {
row = count - 1;
}
if(col < 0) {
col = count - 1;
}
if(square[row][col] != 0) {
if(row == count - 1) {
row = 0;
} else {
row++;
}
if(col == count - 1) {
col = 0;
} else {
col++;
}
row++;
if(row > count - 1) {
row = 0;
}
}
square[row][col] = i;
}
return square;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯