Прикреплённый файл «2012-12-21.spiral.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4  Требуется заполнить массив размера N × N единичками по спирали (начиная с верхнего левого угла по часовой стрелке). Ввести N. Вывести на экран построенную спираль.
   5 
   6 1111111
   7 0000001
   8 1111101
   9 1000101
  10 1011101
  11 1000001
  12 1111111
  13 '''
  14 
  15 N = input()
  16 D=((1,0), (0,1), (-1,0), (0,-1))
  17 # Верний ряд, правая колонка, нижний ряд
  18 A=dict( zip(zip(range(N),[0]*N),[1]*N)+\
  19         zip(zip([N-1]*N,range(N)),[1]*N)+\
  20         zip(zip(range(N-1,-1,-1),[N-1]*N),[1]*N) )
  21 Cont, i, (x, y) = True, 3, (0,N-2)
  22 while Cont:
  23     dx, dy = D[i%4]
  24     Cont = False
  25     while not A.has_key((x,y)) and not A.has_key((x+2*dx, y+2*dy)):
  26         A[x,y] = 1
  27         x+=dx
  28         y+=dy
  29         Cont = True
  30     i+=1
  31 print i
  32 for i in xrange(N):
  33     for j in xrange(N):
  34         if not A.has_key((i,j)):
  35             A[i,j] = 0
  36 for i in xrange(N):
  37     print "".join((str(A[j,i]) for j in xrange(N)))
  38     

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.