- 描述
-
小螞蟻童鞋最近迷上了位運算,他感覺位運算非常神奇。不過他最近遇到了一個難題:
給定一個區間[a,b],在區間裡尋找兩個數x和y,使得x異或y最大。來,幫幫他吧!
- 輸入
-
有多組測試資料(以EOF結尾)。
每組資料輸入兩個數a,b.(0<=a<b<2^63)
輸出 - 輸出a到b之間,異或最大的值。 樣例輸入
-
1 2 8 9
樣例輸出 -
3 1
-
代碼:
package com.test.yh;
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner in =new Scanner(System.in);
int a=in.nextInt(),b=in.nextInt();
while(a>=0&&b>=0)
{
int yh=0;
for(int i=a;i<b;i++)
{
for(int j=i;j<=b;j++)
{
if(yh<(i^j))
yh=i^j;
}
}
System.out.println(yh);
a=in.nextInt();
b=in.nextInt();
}
}
}