搬箱子

描述

有1000个苹果,现在有10个箱子,依次按1、2、3……10给箱子编号。现在10个箱子中放入的苹果数量依次是:1、2、4、8、16、32、64、128、256、489个。现在,有客人来买苹果。客人说出想要的苹果数量(1~1000),现在需要准确的从10个箱子中拿出若干箱苹果,这些箱苹果的数量正好符合客人的数量要求。例如,客人需要3个苹果,则我们可以拿出1号和2号箱子。
编写程序,输入一个1-1000的整数n,计算输出需要拿出正好n个箱子的组合方案(只要从小到大输出箱子的编号,用空格分隔)。

输入样例1:

3

输出样例1:

1 2

输入样例2:

500

输出样例2:

3 5 6 7 8 9
1 2 4 10