5.3---找最近的两个数(CC150)

    public static int[] getCloseNumber(int x){
        int[] res = new int[2];
        int i = 1;
        int num = oneNumber(x);
        while(res[0] == 0 || res[1] == 0){
            if(oneNumber(x-i) == num && res[0] == 0){
                res[0] = x-i;
            }
            if(oneNumber(x+i) == num && res[1] == 0){
                res[1] = x + i;
            }
            i++;
        }
        
        
        return res;
    }
    
    public static int oneNumber(int x){
        String str = Integer.toBinaryString(x);
        int res = 0;
        for(int i = 0; i < str.length();i++){
            if(str.charAt(i) == '1'){
                res++;
            }
        }
        return res;
    }

 

posted @ 2015-12-29 11:01  仔细思考一切  阅读(191)  评论(0)    收藏  举报