diff options
Diffstat (limited to 'progs/a233.py')
-rw-r--r-- | progs/a233.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/progs/a233.py b/progs/a233.py new file mode 100644 index 0000000..92bbaa7 --- /dev/null +++ b/progs/a233.py @@ -0,0 +1,29 @@ +def generate_matrix(n):
+ if n<=0:
+ return []
+ matrix=[row[:] for row in [[0]*n]*n]
+ row_st=0
+ row_ed=n-1
+ col_st=0
+ col_ed=n-1
+ current=1
+ while (True):
+ if current>n*n:
+ break
+ for c in range (col_st, col_ed+1):
+ matrix[row_st][c]=current
+ current+=1
+ row_st+=1
+ for r in range (row_st, row_ed+1):
+ matrix[r][col_ed]=current
+ current+=1
+ col_ed-=1
+ for c in range (col_ed, col_st-1, -1):
+ matrix[row_ed][c]=current
+ current+=1
+ row_ed-=1
+ for r in range (row_ed, row_st-1, -1):
+ matrix[r][col_st]=current
+ current+=1
+ col_st+=1
+ return matrix
\ No newline at end of file |