7 条题解
-
-1
n=int(input())
p=[[0 for i1 in range(n)] for i2 in range(n)]
p[0][(n-1)//2]=1
def t(x):
for z in range(n):
for c in range(n):
if p[z][c]==x:
return [z,c]
#t(x)=[x所在行,x所在列]
for k in range(2,n**2+1,1):
j=k-1
if t(j)[0]==0 and t(j)[1]!=n-1:
p[n-1][t(j)[1]+1]=k
elif t(j)[1]==n-1 and t(j)[0]!=0:
p[t(j)[0]-1][0]=k
elif t(j)[0]==0 and t(j)[1]==n-1:
p[1][n-1]=k
else:#if t(j)[0]!=0 and t(j)[1]!=n-1:
if p[t(j)[0]-1][t(j)[1]+1]==0:
p[t(j)[0]-1][t(j)[1]+1]=k
else:
p[t(j)[0]+1][t(j)[1]]=k
for i in p:
op=''
for d in i:
op+=str(d)+' '
print(op)
信息
- ID
- 156
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 138
- 已通过
- 68
- 上传者