hzCPPOJ

集合的前N个元素问题

时间限制:  1 s      内存限制:   128 MB
提交:485     正确:273     分值:66

题目描述

编一个程序,按递增次序生成集合M的最小的N个数,M的定义如下:

        数1属于M;

        如果X属于M,则Y=2*X+1和Z=3*X+1也属于M;

        此外再没有别的数属于M。


输入

正整数N。N不大于100。

输出

生成的集合M的最小N个数。

样例

样例输入:
4
样例输出:
1 3 4 7
样例输入:
6
样例输出:
1 3 4 7 9 10
样例输入:
60
样例输出:
1 3 4 7 9 10 13 15 19 21 22 27 28 31 39 40 43 45 46 55 57 58 63 64 67 79 81 82 85 87 91 93 94 111 115 117 118 121 127 129 130 135 136 139 159 163 165 166 171 172 175 183 187 189 190 193 202 223 231 235

提示

1、使用一个队列x,将新产生的数放在队尾,在队首处理数,但2的倍数数和3的倍数是依次入队,存在数大小问题 。
2、再建立两个辅助队列y,z,将新产生的数,分别在两队队尾入队;
     将两队列的队首值进行比较,做相应处理 。(比较后的三种值分别做处理,是否存在值相等情况?)
     重复操作直到取出第N项为止。

提交人

AmberXie

来源/分类