Advertisement
R1bell

Untitled

Oct 28th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.61 KB | None | 0 0
  1. n = int(input())
  2. lst = [n] + ([0] * (n - 1)) #[n, 0, ... 0]
  3. print(n)
  4. zero = n - 1#Последний 0 элемент слева
  5. k = 0#Индекс числа которое мы будем уменьшать
  6. while lst[-1] != 1:
  7.     k = 0
  8.     i = n - 2
  9.     while lst[i] == 0:
  10.         i -= 1
  11.     zero = i + 1
  12.     while lst[i] == 1:
  13.         k += 1
  14.         i -= 1
  15.     lst[i] -= 1
  16.     k += 1
  17.     if lst[i] == 1:
  18.         lst[zero] += 1
  19.         print(*lst[:zero + 1], sep = '+')
  20.     else:
  21.         for r in range(i + 1, zero):
  22.             lst[r] = 0
  23.         while k != 0:
  24.             if lst[i + 1] < lst[i]:
  25.                 lst[i + 1] += 1
  26.                 k -= 1
  27.             else:
  28.                 i += 1
  29.         print(*lst[:zero], sep = '+')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement