#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语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:578 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码) 用函数传参的方法浏览:4078 |
数组输出 (C语言代码)浏览:767 |
九宫重排 (C++代码)浏览:2160 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:616 |
【计算球体积】 (C语言代码)浏览:1102 |
矩形面积交 (C语言代码)浏览:1312 |
C语言训练-大、小写问题 (C语言代码)浏览:681 |
C语言训练-8除不尽的数 (C语言代码)浏览:1402 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:673 |