1455题:贪心算法(第4.6节)
发布时间
阅读量:
阅读量
1455:An Easy Problem
总时间限制: 1000ms 内存限制: 65536kB
描述
众所周知,计算机中存储的数据是以二进制形式存在的。当前我们所探讨的问题涉及正整数及其对应的二进制表示形式。
对于给定的正整数 I,任务是找出一个整数 J,该整数需满足两个条件:其一为 J 必须大于 I;其二为 J 的二进制表示中包含与 I 的二进制表示相同数量的 ‘1’ 字符。
例如,若输入为 “78”,则其对应的二进制形式为 “1001110”,其中含有 4 个 ‘1’。在所有大于 “1001110” 的二进制数中,最小的那个同时拥有 4 个 ‘1’ 的是 “1010011”,即十进制中的 “83”。因此,输出应为 “83”。
输入
每行输入一个整数,代表 I(范围限定在 1 到 1000000)。
当某一行输入为数字 “0” 时,表示输入结束,该行无需进行处理。
输出
每行输出一个整数 J。
样例输入
1
2
3
4
78
0
样例输出
2
4
5
8
83
#include <iostream>
#include<string.h>
using namespace std;
//http://noi.openjudge.cn/ch0406
全部评论 (0)
还没有任何评论哟~
