[問題] 奇數魔方陣

看板java作者 (evenif)時間14年前 (2011/08/11 20:31), 編輯推噓5(504)
留言9則, 4人參與, 最新討論串1/1
奇數魔方陣就是一個方陣中每行、每列 & 對角線的和都相等。 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

08/11 20:51, , 1F
請先用紙和筆,跑一次你的演算法,好嗎?
08/11 20:51, 1F

08/11 21:03, , 2F
if(magic[r][l] != 0) 後面兩行有縮排卻沒大括 刻意或漏?
08/11 21:03, 2F

08/11 21:29, , 3F
漏了,加上去後還是出不來,在發文前已在紙上算過了
08/11 21:29, 3F
※ 編輯: evenif1001 來自: 218.172.4.121 (08/11 21:30)

08/11 21:46, , 4F
i <= layer;//我沒詳細看 ??
08/11 21:46, 4F

08/11 22:14, , 5F
演算法沒錯 程式碼打錯而已
08/11 22:14, 5F

08/11 22:19, , 6F
08/11 22:19, 6F

08/11 23:41, , 7F
你這演算法好神奇喔,到底是怎麼推出來的啊?
08/11 23:41, 7F

08/12 14:58, , 8F
竟然是那裏打錯 >//////< 謝謝L大修正!!!
08/12 14:58, 8F

08/12 15:01, , 9F
因為第一個想到的就是用餘數解,然後慢慢敲出來的
08/12 15:01, 9F
文章代碼(AID): #1EGykyvQ (java)