#include<iostream> using namespace std; int a[1000]; int onecheck(int a) { int j,i=~0,count=0; i=a&i; for(j=0;j<30;j++) { if(i%2==1)count++; i/=2; } return count; } int main() { int i,j; while(cin>>i&&i!=0) { for(j=i+1;;j++) { if(onecheck(i)==onecheck(j)) { cout<<j<<endl; break; } } } return 0; }
给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。
最新推荐文章于 2024-04-24 15:15:48 发布