7 条题解

  • -1
    @ 2024-9-4 23:45:57

    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
    上传者