#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
int main()
{
int m,n;
do
{
scanf("%d%d",&m,&n);
if(m==0&&n==0)break;
int f=0;
int a=m,b=m;
while(a<n&&b<n)
{
a=a*2;
b=b*2+1;
f++;
}
if(a>n)
cout<<(int)(pow(2,f))-1<<endl;
else if(a<=n&&b>=n)
cout<<(int)(pow(2,f))+n-a<<endl;
}while(m!=0&&n!=0);
return 0;
}
二叉树(WZMS OJ)
最新推荐文章于 2022-07-18 08:04:37 发布