题目描述
门禁卡以二进制中 $1$ 的个数作为"辉级"。给定编号 $N$,找最小的、比 $N$ 大 且与 $N$ 辉级相同(二进制里 $1$ 的个数一样多)的编号 $M$。
多组询问,读到 $0$ 结束。
输入格式
若干行,每行一个正整数 $n$($1 \le n \le 10^6$);以单独一行 $0$ 结束。
输出格式
对每个 $n$ 输出一行对应的 $M$;$0$ 不产生输出。
数据范围
$$1 \le n \le 10^6$$
门禁卡以二进制中 $1$ 的个数作为"辉级"。给定编号 $N$,找最小的、比 $N$ 大 且与 $N$ 辉级相同(二进制里 $1$ 的个数一样多)的编号 $M$。
多组询问,读到 $0$ 结束。
若干行,每行一个正整数 $n$($1 \le n \le 10^6$);以单独一行 $0$ 结束。
对每个 $n$ 输出一行对应的 $M$;$0$ 不产生输出。
1 2 3 4 78 0
2 4 5 8 83
1000000 0
1000064