#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