不知道它这个是怎么判题的,我也是这样输入一个求解一个,但是用下面的办法是可以ac的。
import java.util.Scanner;

public class Main {
   public static void main(String args[])
    {
    	boolean[] B = new boolean[100000 + 1];
    	for (int i = 1; i < 100000 + 1; i++) {
    		int binary =g(i);  		
    		int ten = f(i);
    		if (binary == ten) 
    			B[i] = true;
    	}
    	
        Scanner cin = new Scanner(System.in);
        int times = cin.nextInt();
        for (int i = 0; i < times; i++) {
        	int n = cin.nextInt();
        	int count = 0;
        	for (int j = 1; j <= n; j++) {{
        		if (B[j])
        			count++;
        		}
        	}
        	System.out.println(count);
        }
        
        
    }
	private static int f(int num){
		String str = String.valueOf(num);
		int sum = 0;
		for(int i = str.length() - 1;i>=0;i--){
			sum+=Integer.valueOf(str.charAt(i)+"");
		}
		return sum;
	}
	private static int g(int num){
		String str = Integer.toBinaryString(num);
		int sum  = 0;
		for(int i = 0;i<str.length();i++){
			sum+=Integer.valueOf(str.charAt(i)+"");
		}
		return sum;
	}

}