Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.61 KB | None | 0 0
  1. import sys
  2. fib = [1, 2]
  3.  
  4. for i in range(100):
  5.     fib.append(fib[-2] + fib[-1])
  6.  
  7.  
  8. def gen(pref, pos, cnt, need):
  9.     global n, k
  10.     if need == 0:
  11.         sys.stdout.write(pref)
  12.         sys.stdout.write('\n')
  13.         return
  14.     if need < 0:
  15.         return
  16.     if cnt < k:
  17.         gen(pref + '+' + str(fib[pos]) if pref != '' else str(fib[pos]), pos, cnt + 1, need - fib[pos])
  18.     nxt = pos + 1
  19.     while need - fib[nxt] >= 0:
  20.         gen(pref + '+' + str(fib[nxt]) if pref != '' else str(fib[nxt]), nxt, 1, need - fib[nxt])
  21.         nxt += 1
  22.  
  23.  
  24. n = int(input())
  25. k = int(input())
  26.  
  27. gen('', 0, 0, n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement