写出奇数阶幻方的python源代码
时间: 2023-10-18 17:16:55 浏览: 92
以下是一个5阶奇数幻方的Python源代码:
```python
n = 5
magic_square = [[0 for x in range(n)] for y in range(n)]
# 初始值
i = n // 2
j = n - 1
# 填充幻方
num = 1
while num <= (n * n):
if i == -1 and j == n:
j = n - 2
i = 0
else:
if j == n:
j = 0
if i < 0:
i = n - 1
if magic_square[i][j]:
j -= 2
i += 1
continue
else:
magic_square[i][j] = num
num += 1
j += 1
i -= 1
# 打印幻方
print("5阶奇数幻方:")
for i in range(n):
for j in range(n):
print(magic_square[i][j], end="\t")
print()
```
输出:
```
5阶奇数幻方:
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
```
可以看到,这个代码使用了一个二维列表来保存幻方,并且使用了一个算法来填充幻方。算法的核心思想是从幻方的中心开始,按照以下规则填充:
1. 将数字1放在幻方的中心位置。
2. 按照下一个数字的规则向左上方移动,如果走出了幻方的边界,则将当前位置移动到相应的边界上。
3. 如果当前位置已经被填充了,则向左下方移动两个单位,再继续填充。
4. 重复步骤2-3,直到所有的位置都被填充为止。
阅读全文