import java.util.*; public class magic_square { public static void main(String[] args) { boolean number = false; int x = 0; do { try { System.out.print("Please input a odd number and number >= 3: "); Scanner sc = new Scanner(System.in); x = sc.nextInt(); } catch (Exception e) { } if (x >= 3 && x % 2 != 0) { break; } } while (!number); int[][] arsq = new int[x][x]; arsq[0][x/2] = 1; int sum = x * x; int count = 2; int a = x-1; int b = x/2 + 1; arsq[a][b] = count; int a_ne = a - 1; int b_ne = b + 1; do { count++; if (a_ne < 0) { if (b_ne > (x-1)) { a_ne += 2; b_ne -= 1; } else { a_ne = x-1; } } if (b_ne > (x-1)) { b_ne = 0; } if (arsq[a_ne][b_ne] != 0) { a_ne += 2; b_ne -= 1; arsq[a_ne][b_ne] = count; } else { arsq[a_ne][b_ne] = count; } a_ne -= 1; b_ne += 1; } while (count < sum); if (sum > 10) { for (int i = 0; i <= (x-1); i++) { for (int j = 0; j <= (x-1); j++) { System.out.printf("%03d ", arsq[i][j]); } System.out.println(); } } else { for (int i = 0; i <= (x-1); i++) { for (int j = 0; j <= (x-1); j++) { System.out.print(arsq[i][j] + " "); } System.out.println(); } } } }
2017年9月25日 星期一
JAVA-魔方陣
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言