Attachment 'no_3.py'

Download

   1 #!/usr/bin/python
   2 # coding: utf-8
   3 '''
   4 Найти последовательность из N нулей и единиц, в которой никакой отрезок не повторяется три раза подряд. Напечатать НЕТ, если такой последовательности не существует.
   5 '''
   6 
   7 import sys
   8 from math import *
   9 
  10 N=int(sys.argv[1])
  11 
  12 M=[0,0]
  13 while len(M)>1:                         # пока не выкинули второй элемент
  14     for k in xrange(1,len(M)/3+1):      # количество знаков у члена тройки
  15         if M[:k]*3 == M[:k*3]:          # если тройка нашлась
  16             while M[0]: M.pop(0)        # уберём начальные 1
  17             M[0]=1                      # заменим начальный 0 на 1
  18             break
  19     else:                               # если троек нет
  20         if len(M)==N:
  21             print "".join([str(c) for c in M])
  22             break
  23         M.insert(0,0)                   # добавим 0 в начало
  24 else:
  25     print "Последовательности длиной {0} не сущестует".format(N)

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

You are not allowed to attach a file to this page.