An Easy Problem(信息学奥赛一本通-1223)

【题目描述】

给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。

举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。

【输入】

输入若干行,每行一个数n(1≤n≤1000000),输入"0"结束。

【输出】

输出若干行对应的值。

【输入样例】

1

2

3

4

78

0

【输出样例】

2

4

5

8

83

【题解代码】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int get(int x)
{
	int cnt = 0;
	while (x)
	{
		x &= x - 1;
		cnt++;
	}
	return cnt;
}

int main()
{
	int n;
	while (cin >> n && n != 0)
	{
		int num = get(n);
		for (int i = n + 1; i <= 1e6; i++)
		{
			if (get(i) == num)
			{
				cout << i << endl;
				break;
			}
		}
	}

    return 0;

}
相关推荐
藍海琴泉1 分钟前
蓝桥杯算法精讲:二分查找实战与变种解析
python·算法
大刀爱敲代码1 小时前
基础算法01——二分查找(Binary Search)
java·算法
大小胖虎2 小时前
数据结构——第六章:图
数据结构·笔记··最小生成树·拓扑排序·最短路径
HR Zhou5 小时前
群体智能优化算法-正弦余弦算法(Sine Cosine Algorithm, SCA,含Matlab源代码)
算法·机器学习·matlab·优化·群体智能优化
自信的小螺丝钉5 小时前
Leetcode 378. 有序矩阵中第 K 小的元素 二分查找
算法·leetcode·矩阵·二分查找
m0_735234606 小时前
蓝桥杯算法实战分享:算法进阶之路与实战技巧
算法·职场和发展·蓝桥杯
程序员老周6666 小时前
矩阵补充,最近邻查找
算法·机器学习·推荐算法
_GR6 小时前
2021年蓝桥杯第十二届C&C++大学B组真题及代码
c语言·数据结构·c++·算法·蓝桥杯
奋进的小暄7 小时前
贪心算法(11)(java)加油站
算法·贪心算法
lwewan7 小时前
26考研——图_图的基本概念(6)
数据结构·考研