我寫了一個神奇的方形程序,它運行良好。我怎麼能扭轉我的魔方的輸出
但我需要我的工作輸出逆變成這樣: (查看輸出):
目前我的程序的輸出是:
我的期望輸出是:
這是我的代碼的時刻:
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 = num - 1;
int col = num/2;
magic[row][col] = 1;
for (int i = 2; i <= num * num; i++) {
if (magic[(row + 1) % num][(col + 1) % num] == 0) {
row = (row + 1) % num;
col = (col + 1) % num;
} else {
row = (row - 1 + num) % num;
// don't change
}
magic[row][col] = i;
}
// print results
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
System.out.print(magic[i][j] + "\t");
}
System.out.println();
}
}
夥計們,請幫我調試我的代碼,我需要的是這不會完全傷害我的代碼變化不大。 我認爲我的LOOP中有些東西需要改變,但是我找不到它。
也許數學公式..
任何人都記得如何做矩陣旋轉?似乎旋轉矩陣180度解決了它(數學)。我忘了矩陣旋轉。 – j4rey89 2014-12-11 05:54:46