#include <stdio.h>
#include <math.h>
int main()
{
int m=1,n=1;
int i,j=0;
int zui;
while(scanf("%d%d",&m,&n)!=EOF&&m!=0&&n!=0)
{
int k=ceil(log2(n+1));
int s=pow(2,k)-1;
for(i=1;m<n;i++)
{
m=m*2;
if(m>s)
{
m=m/2;
break;
}
}
int shendu=i;
int cc=pow(2,shendu-1);
if(m<=n)
{
if(m+cc-1<n)
{
zui=(pow(2,shendu)-1);
}else{
zui=(pow(2,shendu-1)-1)+(n-m+1);
}
}else{
zui=(pow(2,shendu-1)-1);
}
printf("%d\n",zui);
}
}
0.0分
1 人评分
C二级辅导-公约公倍 (C语言代码)浏览:1509 |
C语言训练-求素数问题 (C语言代码)浏览:727 |
九宫重排 (C++代码)浏览:2160 |
人见人爱A+B (C语言代码)浏览:628 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:787 |
简单的a+b (C语言代码)浏览:486 |
一元一次方程 (C语言代码)浏览:4069 |
C二级辅导-等差数列 (C语言代码)浏览:815 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:533 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:719 |