用户输入一个奇数k输出对应的k阶幻方java
时间: 2024-03-23 07:35:56 浏览: 40
下面是一个Java程序,实现了生成奇数阶幻方的功能:
```java
import java.util.Scanner;
public class MagicSquare {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the order of magic square (odd number): ");
int n = input.nextInt();
if (n % 2 != 1) {
System.out.println("Invalid input!");
return;
}
int[][] square = new int[n][n];
int row = 0, col = n / 2;
for (int i = 1; i <= n * n; i++) {
square[row][col] = i;
row--;
col++;
if (row < 0) {
row = n - 1;
}
if (col == n) {
col = 0;
}
if (square[row][col] != 0) {
row++;
col--;
if (row == n) {
row = 0;
}
if (col < 0) {
col = n - 1;
}
}
}
System.out.println("Magic Square:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(square[i][j] + " ");
}
System.out.println();
}
}
}
```
程序首先提示用户输入幻方的阶数,并检查输入是否为奇数。然后,程序使用一个著名的算法来生成幻方。算法的思路是从第一行中间列开始,按照如下规则填充幻方:
1. 将数字 1 放在第一行中间列。
2. 按顺序填充数字 2 到 n^2,依次放在当前位置的正上方一行、右上方一列。
3. 如果下一个位置已经被填充过,则将数字放在当前位置的正下方一行。
最后,程序打印生成的幻方。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)