用Java定义一个三行三列的二维数组,要求每行之和等于每列之和 25

 我来答
Jseven_jy
2010-09-13 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1137万
展开全部
其实就是魔术方阵。。。

给你写了个比较通用的哈。。
public class MagicSquare {

/**
* @param args
*/
//注意只能产生奇数的魔术方阵 偶数的规律不一样
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;
}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式