Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
77742 | 柯轶炜 | 方阵填数 | Python3 | Accepted | 41 MS | 3824 KB | 788 | 2024-06-15 11:41:12 |
n=int(input()) m=[[0 for _ in range(n)]for _ in range(n)] #被0填满的二维列表 #c=[0 for _ in range(5)] #列表名=[预设元素 for _ in range(列表长度)] if 0<n<=100: if n==1: print(1) else: x,y =0,n-1 m[x][y]=1 dx=[1,0,-1,0] dy=[0,-1,0,1] d=0 for i in range(2,n*n+1): next_x=x + dx[d] next_y=y + dy[d] if not(0<=next_x<n)or not(0<=next_y<n)or m[next_x][next_y] !=0: d=(d+1)%4 next_x=x + dx[d] next_y=y + dy[d] x,y=next_x,next_y#每次变化都记录 m[x][y]=i for i in range(n): for j in range(n): print(m[i][j],end=" ") print()