top1编程
← 返回题目
题解

An Easy Problem

1 条题解

  • 0
    @ 2026-7-28 22:45:15
    #include <iostream>
    using namespace std;
    int num(int a)
    {
        int n=0;
        while(a!=0)
        {
            if(a%2==1)
                n++;
            a/=2;
        }
        return n;
    }
    int main()
    {
        int i;
        while(cin >>i)
        {
            if(i==0)     //根据题目所说,当i为0时,直接结束
                break;
            for (int a=i+1;;a++)
        {
            if(num(a)==num(i))    //当两个数1的数量相等时
                {
                    cout <<a<<endl;  //直接输出答案并且停止循环
                    break;
                }
        }
        }
        return 0;
    }
    
    • 1