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

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;

}

相关文章:

  • 第2.2节:运行AWK脚本方式
  • overleaf中会议参考文献使用什么标签:inproceedings
  • 脚对齐调研学习笔记
  • 【多线程】synchronized底层实现的方式
  • GPU 模型部署实战以 Llama3 70B、Qwen 与 DeepSeek 为例
  • 算法方法快速回顾
  • mysql入门操作
  • 交易在规则框架下运作,反而能强化自身纪律
  • JavaScript 在 Chrome 中运行详解
  • Buildroot 增加系统启动项并解决后台无法获取输入(串口)
  • PV操作指南
  • 【漏洞复现】Next.js中间件权限绕过漏洞 CVE-2025-29927
  • 穿越之程序员周树人的狂人日记Part7__教育战争2.0
  • C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷四)
  • C++类与对象的第一个简单的实战练习-3.24笔记
  • 洛谷题单入门4-P5729 【深基5.例7】工艺品制作-python
  • 一文了解Gradle 依赖管理(五)- 依赖管理缓存依赖
  • K8S学习之基础四十五:k8s中部署elasticsearch
  • Spec2MP:项目管理之项目质量管理
  • oracle数据库(数据库启动关闭/sqlplus登录及基本操作/设置字符集/distinct去重)
  • 江西省市场监管局原局长谢来发被双开:违规接受旅游活动安排
  • 中美大幅下调超100%关税,印巴四日“战争”复盘|907编辑部
  • 科普|“小”耳洞也会引发“大”疙瘩,如何治疗和预防?
  • 专访|日本驻华大使金杉宪治:对美、对华外交必须在保持平衡的基础上稳步推进
  • 著名学者黄修己去世,享年90岁
  • 汇源果汁发文:经营情况一切正常