生成如下的矩阵:
001 002 003 004 005
016 017 018 019 006
015 024 025 020 007
014 023 022 021 008
013 012 011 010 009
- def l(row,col):
- return row,col-1
- def r(row,col):
- return row,col+1
- def u(row,col):
- return row-1,col
- def d(row,col):
- return row+1,col
- n=input('lines')
- a=[[0 for j in range(n)] for i in range(n)]
- #print a
- row=0
- col=0
- number=n*n
- i=1
- a[row][col]=1
- i+=1
- while i<=number:
- while(i<=number):
- row,col=r(row,col)
- print row,col
- try:
- if a[row][col]==0:
- a[row][col]=i
- i+=1
- else:
- col=col-1
- break
- except:
- col-=1
- break
- while(i<=number):
- row,col=d(row,col)
- print row,col
- try:
- if a[row][col]==0:
- a[row][col]=i
- i+=1
- else:
- row=row-1
- break
- except:
- row-=1
- break
- while(i<=number):
- row,col=l(row,col)
- print row,col
- try:
- if a[row][col]==0:
- a[row][col]=i
- i+=1
- else:
- col=col+1
- break
- except:
- col+=1
- break
- while(i<=number):
- row,col=u(row,col)
- print row,col
- try:
- if a[row][col]==0:
- a[row][col]=i
- i+=1
- else:
- row=row+1
- break
- except:
- row+=1
- break
- #print a
- for i in range(n):
- print ' '.join(['%03d'%x for x in a[i]])