3043. 加成序列
时间限制:1000 MS 内存限制:64 MB
题目描述
## 题目描述 满足如下条件的序列 $X$(序列中元素被标号为 $1、2、3\dotsm$)被称为“加成序列”: 1. $X[1]=1$ 2. $X[m]=n$ 3. $X[1]<X[2]<\dots<X[m-1]<X[m]$ 4. 对于每个 kk($2\lek\lem$)都存在两个整数 $i$ 和 $j$ ($1\lei,j\lek-1$,$i$ 和 $j$ 可相等),使得 $X[k]=X[i]+X[j]$。 你的任务是:给定一个整数 $n$,找出符合上述条件的长度 $m$ 最小的“加成序列”。 如果有多个满足要求的答案,只需要找出任意一个可行解。 ## 输入格式 输入包含多组测试用例。 每组测试用例占据一行,包含一个整数 $n$。 当输入为单行的 $0$ 时,表示输入结束。 ## 输出格式 对于每个测试用例,输出一个满足需求的整数序列,数字之间用空格隔开。 每个输出占一行。 ## 输入 ```in1 5 7 12 15 77 0 ``` ## 输出 ```out1 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 ``` ## 提示