作者evenif1001 (evenif)
看板java
标题[问题] 奇数魔方阵
时间Thu Aug 11 20:31:54 2011
奇数魔方阵就是一个方阵中每行、每列 & 对角线的和都相等。
Ex:3X3 的方阵
8 1 6
3 5 7
4 9 2
我打的 Code 跑不出正确的结果 ...
有请板上高手指点到底是哪里出了问题 (跪)
(我的 Code:)
================================================
import java.util.Scanner;
public class Exercise1{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入阶数 : ");
int layer = scanner.nextInt();
int[][] magic = new int[layer][layer];
int r = 0;
int l = ((layer-1)/2);
for(int i = 1; i <= (layer*layer); i++){
magic[r][l] = i;
r = ((r+layer-1)%layer);
l = ((l+1)%layer);
if(magic[r][l] != 0){
r = (r+layer-1)%layer;
l = (l+layer-1)%layer;
}
}
for(int i = 0; i < arr.length; i++)
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
============================================================
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.172.4.121
1F:→ pico2k:请先用纸和笔,跑一次你的演算法,好吗? 08/11 20:51
2F:推 LaPass: if(magic[r][l] != 0) 後面两行有缩排却没大括 刻意或漏? 08/11 21:03
3F:→ evenif1001:漏了,加上去後还是出不来,在发文前已在纸上算过了 08/11 21:29
※ 编辑: evenif1001 来自: 218.172.4.121 (08/11 21:30)
4F:推 lachtchlee:i <= layer;//我没详细看 ?? 08/11 21:46
5F:推 LaPass:演算法没错 程式码打错而已 08/11 22:14
7F:推 LaPass:你这演算法好神奇喔,到底是怎麽推出来的啊? 08/11 23:41
8F:→ evenif1001:竟然是那里打错 >//////< 谢谢L大修正!!! 08/12 14:58
9F:→ evenif1001:因为第一个想到的就是用余数解,然後慢慢敲出来的 08/12 15:01