当前位置: 首页 > article >正文

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

【题解代码】

#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;

}

http://www.kler.cn/a/599615.html

相关文章:

  • 计算机是如何工作的
  • 【Ratis】SlideWindow滑动窗口机制
  • 在C++ Qt中集成Halcon窗口并实现跨平台兼容和大图加载
  • IIS漏洞再现
  • conda install 和 pip install 的区别
  • 【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解
  • 详解Redis 核心特性与基础
  • C++相关
  • 2025高频面试算法总结篇【字符串】
  • 蓝桥杯算法题分享(二)
  • NO.55十六届蓝桥杯备战|排序|插入|选择|冒泡|堆|快速|归并(C++)
  • NLP高频面试题(十三)——什么是大模型幻觉,如何解决大模型幻觉
  • 数据结构-二叉链表存储的二叉树
  • 数字电路基础
  • jupyter 操作相关内容
  • ADB介绍
  • VL开源模型实现文本生成图片
  • 计算图(Computation Graph)
  • 在VMware17中安装使用Ubuntu虚拟机
  • 四.ffmpeg对yuv数据进行h264编码