Problem A: Addition Chains
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:33
Solved:0
Description
一个与 n 有关的整数加成序列 <a0 a1 a2 ...am > 满足以下四个条件:
1.a0 =1
2.am =n
3.a0 <a1 <a2 <...<am−1 <am
4. 对于每一个 k(1≤k≤m) 都存在有两个整数 i 和 j(0≤ij≤k−1i 和 j 可以相等 ) ,使得 ak =ai +aj
你的任务是:给定一个整数n 找出符合上述四个条件的长度最小的整数加成序列。如果有多个满足要求的答案,只需要输出任意一个解即可。举个例子,序列 <1235> 和 <1245> 均为 n=5 时的解。
Input
输入包含多组数据。每组数据仅一行包含一个整数 n(1≤n≤10000) 。在最后一组数据之后是一个 0 。
Output
对于每组数据,输出一行所求的整数加成序列,每个整数之间以空格隔开。
Sample Input Copy
5
7
12
15
77
0
Sample Output Copy
1 2 4 5
1 2 4 6 7
1 2 4 8 12
1 2 4 5 10 15
1 2 4 8 9 17 34 68 77