/ Vijos / 题库 /

容易题

容易题

时间限制:1秒  内存限制:256M


【问题描述】

  众所周知,存储在计算机中的数据是二进制形式。我们现在讨论的问题是关于正整数及其二进制形式。
  给定一个正整数 \(I\),你的任务是找出一个整数 \(J\),它是大于 \(I\) 的最小整数,并且其二进制形式的'1'的数量与 \(I\) 的二进制中'1'的数量相同。
  例如,如果给出 “78”,我们可以写出它的二进制形式 “1001110”。这个二进制形式中有 4 个 1。大于 “1001110” 并且还包含 4 个 1 的最小整数的二进制是 “1010011” ,即 “83” ,因此您应输出 “83”。

【输入格式】

  每行一个整数 \(I\)。包含数字“0”的行终止输入,并且不需要处理该行。

【输出格式】

  每行一个整数 \(J\)。

【输入输出样例】

 Input

1
2
3
4
78
0

 Output

2
4
5
8
83

【数据限制】

  对于 \(100\%\) 的数据:\(1 ≤ I ≤ 1000000\)

【来源】

  Mr.he

信息

ID
1237
难度
4
分类
贪心 | 数论 点击显示
标签
递交数
5
已通过
1
通过率
20%
被复制
4
上传者