ACM:每行輸入一個正整數n,找出與它對應的比它大的最小的且它們對應的二進制中1的個數一樣多的正整數.
#include
//每行輸入一個正整數i,找出與他對應的比它大的最小的正整數且他們的二進制中1的個數一樣多。
/* 樣例輸入: 樣例輸出:
1 2
2 4
3 5
4 8
78 83
0
*/
//78的二進制位1001110,有4個1;83比78大且83的二進制位1001011也是4個1.
int main()
{
int count1,count2;//count1統計原數據對應的二進制中1的個數,count2...
int a[100];//存輸入的數字
int i=0,len=0;//i是循環變量,len是數字個數
int n;//n時輸入數字的變量
int A,B;//下面求余、相除、時需要用到的變量
int temp=0;//判斷是0還是1
while(1)//循環輸入多組數據直到輸入的是0結束輸入
{
scanf("%d",&n);
if(n==0)//輸入0時結束輸入,放在這裡0的值就不會存到數組中了
break;
a[i]=n;
i++;
len++;
}
for(i=0;i