小扇和小船的数字游戏(100)
- 小船给小扇一个正整数n, 小扇需要找到一个比n大的数字m,使用得m和n对应的二进制中1的个数相同;
- 如4->二进制100; 8->二进制为1000 其二进制中1的个数相同;
- 求m的最小值;
输入描述:
输入一个正整数n 在[1, 10^9]
输出描述:
输出一个正整数m
示例1
输入:
2
输出:
4
示例2
输入:
7
输出:
11
思路:
- 简单的二进制
python
def getBinaryOneCount(num):
count = 0
while num > 0:
count += num % 2
num = num // 2
return count
n = int(input().strip())
m = n+1
while True:
if getBinaryOneCount(m) == getBinaryOneCount(n):
break
m += 1
print(m)