给一个n(4<=n<=200),输出一个n*n的矩阵,要求在矩阵中画一个米字,处于米字边界线的格子置0,其余格子按逆时针顺序填充1~8的数字
def mi(n):
a = [[0] * n for _ in range(n)]
# print(a)
mid = n // 2
for i in range(n):
for j in range(n):
# 处理左上角
if i < mid and j < mid:
if i > j:
a[i][j] = 3
elif i < j:
a[i][j] = 2
# 处理右下角
if i >= mid and j >= mid:
if i > j:
a[i][j] = 6
elif i < j:
a[i][j] = 7
# 处理右上角
if i < mid and j >= mid:
if i + j >= n:
a[i][j] = 8
elif i + j < n:
a[i][j] = 1
# 处理左下角
if i >= mid and j < mid:
if i + j >= n:
a[i][j] = 5
elif i + j < n:
a[i][j] = 4
# 处理反对角线
if i + j == n - 1:
a[i][j] = 0
print(a[i][j], end=' ')
print('\n')
import sys
if __name__ == "__main__":
# 读取第一行的n
n = int(sys.stdin.readline().strip())
mi(n)
"""
0 2 2 2 2 2 1 1 1 1 1 0
3 0 2 2 2 2 1 1 1 1 0 8
3 3 0 2 2 2 1 1 1 0 8 8
3 3 3 0 2 2 1 1 0 8 8 8
3 3 3 3 0 2 1 0 8 8 8 8
3 3 3 3 3 0 0 8 8 8 8 8
4 4 4 4 4 0 0 7 7 7 7 7
4 4 4 4 0 5 6 0 7 7 7 7
4 4 4 0 5 5 6 6 0 7 7 7
4 4 0 5 5 5 6 6 6 0 7 7
4 0 5 5 5 5 6 6 6 6 0 7
0 5 5 5 5 5 6 6 6 6 6 0
"""