こんにちは、Java で魔方陣プログラムを作成しました。数値 3 を入力すると正常に動作しますが、5 などを入力すると問題が発生します。パターンが間違っています。
私のコードで何が間違っているかを見つけるのを手伝ってください:
これが私のコードです:
Scanner input = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = input.nextInt();
// Number must be ODD and not less than or equals to one to continue
while ((num % 2 == 0) || (num <= 1)) {
System.out.println("Enter a valid number: ");
num = input.nextInt();
}
int[][] magic = new int[num][num];
int row = 0;
int col = num / 2;
magic[row][col] = 1;
for (int i = 2; i <= num * num; i++) {
if (magic[(row + 5) % num][(col + 2) % num] == 0) {
row = (row + 5) % num;
col = (col + 2) % num;
} else {
row = (row + 1 + num) % num;
}
magic[row][col] = i;
}
for (int x = 0; x < num; x++) {
for (int j = 0; j < num; j++) {
System.out.print(magic[x][j] + "\t");
}
System.out.println();
}
}
3を入力すると正しいです。出力は次のとおりです。
しかし、5: のような数字を入力すると、次のようになります。
更新しました!