Advertisement
singizin

Spiral

Jun 24th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. def down(i,j,N):
  2.     #print('d i={} j={} N={}'.format(i,j,N))
  3.     if N == 0:
  4.         return
  5.     global new
  6.     global n
  7.     global f
  8.     for k in range(N-1):
  9.         #print('ffgfg {} {}'.format(i,j))
  10.         new[j][i] = n[f]
  11.         j = j + 1
  12.         f = f + 1
  13.         #print('{} {} {}'.format(i,j,f))
  14.     #print(new,f)
  15.     j = j - 1
  16.     i = i - 1
  17.     #print(i,j)
  18.     #print(new[j][i])
  19.     for k in range(N-1):
  20.         new[j][i] = n[f]
  21.         i = i - 1
  22.         f = f + 1
  23.     #print(new)
  24.     i = i + 1
  25.     up(i,j-1,N-1)
  26.     return
  27.  
  28.  
  29. def up(i,j,N):
  30.     #print('u i={} j={} N={}'.format(i,j,N))
  31.     if N == 0:
  32.         return
  33.     global new
  34.     global n
  35.     global f
  36.     for k in range(N-1):
  37.         #print('ffgfg {} {}'.format(i,j))
  38.         new[j][i] = n[f]
  39.         j = j - 1
  40.         f = f + 1
  41.         #print('{} {} {}'.format(i,j,f))
  42.     #print(new,f)
  43.     j = j + 1
  44.     i = i + 1
  45.     #print(i,j)
  46.     #print(new[j][i])
  47.     for k in range(N-1):
  48.         new[j][i] = n[f]
  49.         i = i + 1
  50.         f = f + 1
  51.     #print(new)
  52.     i = i - 1
  53.     down(i,j+1,N-1)
  54.     return        
  55. f = 0
  56. a = int(input())
  57. n = [i+1 for i in range(a*a)]
  58. new = [[int(i) for i in range(a)] for i in range(a)]
  59. for i in range(a):
  60.     new[0][i] = n[i]
  61.     f = f + 1
  62. down(a-1,1,a)
  63. for i in range(len(new)):
  64.     for j in range(len(new[i])):
  65.         print(new[i][j],end=' ')
  66.     print('')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement