poj 2453 An Easy Problem
来源:互联网 发布:电工绘图软件 编辑:程序博客网 时间:2024/06/07 21:55
Problem Description
As we known, data stored in the computers is in binary form. The problem we discuss now is about the positive integers and its binary form.
Given a positive integer I, you task is to find out an integer J, which is the minimum integer greater than I, and the number of '1's in whose binary form is the same as that in the binary form of I.
For example, if "78" is given, we can write out its binary form, "1001110". This binary form has 4 '1's. The minimum integer, which is greater than "1001110" and also contains 4 '1's, is "1010011", i.e. "83", so you should output "83".
Given a positive integer I, you task is to find out an integer J, which is the minimum integer greater than I, and the number of '1's in whose binary form is the same as that in the binary form of I.
For example, if "78" is given, we can write out its binary form, "1001110". This binary form has 4 '1's. The minimum integer, which is greater than "1001110" and also contains 4 '1's, is "1010011", i.e. "83", so you should output "83".
Input
One integer per line, which is I (1 <= I <= 1000000).
A line containing a number "0" terminates input, and this line need not be processed.
A line containing a number "0" terminates input, and this line need not be processed.
Output
One integer per line, which is J.
Sample Input
1234780
Sample Output
245883#include <iostream>using namespace std;const int MAX_BIT=32;int CountOne(int input){ int cnt=0; for (int i=0; i<MAX_BIT; i++) { if (input>>i&1)//右移i位,比较与1的大小,如果相等则++; { cnt++; } } return cnt;}int main(){ int input; while (cin>>input) { if(input==0) break; for (int ii=input+1;; ii++) { if(CountOne(ii)==CountOne(input)) { cout<<ii<<endl; break; } } } return 1;}
- poj 2453 An Easy Problem
- poj 2453 An Easy Problem
- POJ 2453 An Easy Problem G++
- POJ 1152 An Easy Problem
- poj-1152 An Easy Problem!
- POJ 2826 An Easy Problem?!
- poj 2826 An Easy Problem?!
- POJ 2826 An Easy Problem?!
- POJ 2826 An Easy Problem?!
- POJ 2826 An Easy Problem?!
- POJ 2826 An Easy Problem ?!
- POJ 2826 An Easy Problem?!
- Poj 2826 An Easy Problem!
- Poj 1152 An Easy Problem!
- An Easy Problem?! - POJ 2826
- poj-2826 An Easy Problem?!
- POJ 2826 An Easy Problem?! 好题
- POJ 2826 An Easy Problem?!(计算几何)
- 对中级 Linux 用户非常有用的 20 个命令
- IPAM 计算机视觉 summer school
- 对 Linux 专家非常有用的 20 个命令
- 03.数据库处理细节
- 【Android】手机地图功能——利用手机GPS获取用户地理坐标
- poj 2453 An Easy Problem
- immediate echo
- 使用ANT自动发布Android APK
- hdu 题目1247 Hat’s Words(字典树)
- 黑马程序员——多态,内部类,异常
- Linux 资源管理-Cgroups
- 从外部引入整个工程到eclipse中后,工程前面出现小红叉
- C语言数组,指针,函数等问题
- QT—Creator使用