蚂蚁的难题(异或最大值问题)

来源:互联网 发布:flash与js交互 编辑:程序博客网 时间:2024/06/05 00:54
描述

小蚂蚁童鞋最近迷上了位运算,他感觉位运算非常神奇。不过他最近遇到了一个难题:

给定一个区间[a,b],在区间里寻找两个数x和y,使得x异或y最大。来,帮帮他吧!

输入
有多组测试数据(以EOF结尾)。
每组数据输入两个数a,b.(0<=a<b<2^63)
输出
输出a到b之间,异或最大的值。
样例输入
1 28 9
样例输出
31

代码:

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();
         }
    }

}




原创粉丝点击