n = int(input())
i = 0
s = 0
d = {0: 0}
while s < n:
i += 1
s += bin(i).count('1')
d[i] = s
r = [i]
n -= bin(i).count('1')
i -= 1
while n:
if d[i - 1] < n:
n -= bin(i).count('1')
r += [i]
i -= 1
print(len(r))
for i in r:
print(i, end=' ')
print()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | n = int(input()) i = 0 s = 0 d = {0: 0} while s < n: i += 1 s += bin(i).count('1') d[i] = s r = [i] n -= bin(i).count('1') i -= 1 while n: if d[i - 1] < n: n -= bin(i).count('1') r += [i] i -= 1 print(len(r)) for i in r: print(i, end=' ') print() |
English