AlgoMooc
← 返回题库

P4003. 找数字

中等通过率 74% · 提交 84 · 通过 62
位运算数学枚举

小慕最近在做一个数字处理项目,遇到了一个有趣的问题。项目经理给了小慕一个 n (1 ≤ n ≤ 1e9),要求小慕找到一个比 n 大的数字 m,并且 m 和 n 的二进制表示中 1 的个数必须相同(例如,4 的二进制是 100,8 的二进制是 1000,它们都只有 1 个 1)。现在,小慕需要找出满足条件的最小的 m。

提示:带虚线的词点一下有通俗解释。

输入描述

输入一行输入一个正整数n (1 <= n <= 1e9)。

输出描述

输出一个正整数m。

示例

示例 1

输入

300

输出

305

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。