目录
题目
小扇和小船今天又玩起来了数字游戏 ,小船给小扇一个正整数n ,小扇需要找到一个比 n 大的数字 m,使得 m 和 n 对应的二进制中 1 的个数要相同,
如:
1:4对应二进制100
2:8对应二进制1000
3:其中1的个数都为1个
现在求 m 的 最小值 。
输入描述
输入一个正整数 n (1<=n <= 1e9)
输出描述
输出一个正整数 m 示例1:
输入
2
输出
4
说明:
2的二进制10,4的 二进制位 100,1的个数相同,目4是满足条件的最小数
示例2:
输入
7
输出
11
说明
7的二进制111,11的二进制位1011,1的个数相同,且11是满足条件的最小数
思路
code
var fn = function (n) {
let cnt = n.toString(2).split("").filter(e => e == '1').length;
let m = n + 1;
while (tru