说明
给定l和r,请你找到一个x,使l≤x≤r,并且二进制形式包含的1最多。 如果有多个这样的数字,则输出其中的最小数字。
输入格式
输入两个正整数l和r(1<=l<=r<=10^5)
输出格式
按要求输出x
输入数据 1
1 10
Copy
输出数据 1
7
Copy
提示
在1到10之间,只有7的二进制形式包含3个1
______________________________________________________________________
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int best,max=0;
for(int i=a;i<=b;i++)
{
int num=1,c=i;
while(c>=1)
{
if(c%2==1)
{
num+=1;
}
c/=2;
}
if(num>max)
{
max=num;
best=i;
}
}
cout<<best;
}