思路:因为是二进制的回文数,所以如果最低位是 0,那么相应地最高位
也是 0。但是,以 0 开头肯定是不恰当的,由此可知最低位为 1。
如果用二进制表示时最低位为 1,那这个数一定是奇数,因此只考
虑奇数的情况就可以。接下来可以简单地编写程序,从 10 的下一个数
字 11 开始,按顺序搜索
@Testpublic void test1(){Integer num = 11;while(true) {if (num.toString().equals(reverse(num))&& Integer.toBinaryString(num).equals(reverse(Integer.toBinaryString(num)))&& Integer.toOctalString(num).equals(reverse(Integer.toOctalString(num)))) {System.out.println(num);break;} else {num += 2;}}}public static <T> String reverse(T num){StringBuilder stringBuilder = new StringBuilder();stringBuilder.append(num);return stringBuilder.reverse().toString();}
