思路:因为是二进制的回文数,所以如果最低位是 0,那么相应地最高位
    也是 0。但是,以 0 开头肯定是不恰当的,由此可知最低位为 1。
    如果用二进制表示时最低位为 1,那这个数一定是奇数,因此只考
    虑奇数的情况就可以。接下来可以简单地编写程序,从 10 的下一个数
    字 11 开始,按顺序搜索

    1. @Test
    2. public void test1(){
    3. Integer num = 11;
    4. while(true) {
    5. if (num.toString().equals(reverse(num))
    6. && Integer.toBinaryString(num).equals(reverse(Integer.toBinaryString(num)))
    7. && Integer.toOctalString(num).equals(reverse(Integer.toOctalString(num)))) {
    8. System.out.println(num);
    9. break;
    10. } else {
    11. num += 2;
    12. }
    13. }
    14. }
    15. public static <T> String reverse(T num){
    16. StringBuilder stringBuilder = new StringBuilder();
    17. stringBuilder.append(num);
    18. return stringBuilder.reverse().toString();
    19. }