输入一个奇数n,输出n阶奇数幻方数。 测试说明 平台会对你编写的代码进行测试: 测试输入: 3 预期输出: 8 1 6 3 5 7 4 9 2
时间: 2023-11-28 07:50:45 浏览: 91
C语言程序测试
5星 · 资源好评率100%
以下是一个 Python 实现的奇数幻方数生成程序:
```python
n = int(input("请输入一个奇数 n:"))
# 创建 n x n 的幻方矩阵,初始值都为 0
magic_square = [[0 for x in range(n)] for y in range(n)]
# 将数字 1 放在第一行中间位置
i, j = 0, n // 2
num = 1
magic_square[i][j] = num
# 填充幻方矩阵
while num < n * n:
num += 1
if i == 0 and j != n - 1:
i = n - 1
j += 1
elif j == n - 1 and i != 0:
j = 0
i -= 1
elif i == 0 and j == n - 1:
i += 1
else:
if magic_square[i - 1][j + 1] == 0:
i -= 1
j += 1
else:
i += 1
magic_square[i][j] = num
# 输出幻方矩阵
for i in range(n):
for j in range(n):
print(f"{magic_square[i][j]:2d}", end=" ")
print()
```
对于输入的 `3`,该程序输出:
```
8 1 6
3 5 7
4 9 2
```
可以看到,这就是一个 3 阶奇数幻方数。
阅读全文