TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P2221
  • 题目
  • P2221【位运算】"1"的数量
    限制 : 时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

    我们都知道,数字在计算机中使用二进制来表示的,下面我们就来讨论一个关于正整数的二进制形式的问题。
    给你一个正整数x,请找出一个正整数y,要求y是大于x的最小的一个整数,并且y的二进制形式与x的二进制形式有相同数量的"1"。

    例如,x的值为78,它的二进制形式是"1001110",其中含有4个"1",比78大的且二进制同样含有4个"1"的最小的一个整数是83,它的二进制形式是"1010011"。

    输入格式

    第一行,一个整数n表示有n(n<=5000)个测试数据,
    接下来n行,每行一个整数x,(x<=50,000,000)

    输出格式

    共n行,每行对应一个整数x的结果

    样例输入

    5
    1
    2
    3
    4
    78

    样例输出

    2
    4
    5
    8
    83


    来源  改编自POJ 2453