fork download
  1. import java.util.*;
  2.  
  3. class NewMain
  4. {
  5. boolean isPalidrome(int number)
  6. {
  7. int digits = (int)Math.ceil(Math.ceil(Math.log10(1+number)/Math.log10(2)))-1;
  8. for (int i = 0; number/2 >> i != 0; i++)
  9. {
  10. if (((number >> i) & 1) != (((number >> digits - i) & 1)))
  11. return false;
  12. }
  13. return true;
  14. }
  15.  
  16. boolean isPalidrome2(byte number)
  17. {
  18. int digits = (int)Math.ceil(Math.ceil(Math.log10(1+number)/Math.log10(2)))-1;
  19. if ((number & 1) != (((number >> digits) & 1)))
  20. return false;
  21. if ((number/2 >> 1) == 0)
  22. return true;
  23. if (((number >> 1) & 1) != (((number >> (digits - 1)) & 1)))
  24. return false;
  25. if ((number/2 >> 2) == 0)
  26. return true;
  27. if (((number >> 2) & 1) != (((number >> (digits - 2)) & 1)))
  28. return false;
  29. if ((number/2 >> 3) == 0)
  30. return true;
  31. if (((number >> 3) & 1) != (((number >> (digits - 3)) & 1)))
  32. return false;
  33. return true;
  34. }
  35.  
  36. public static void main(String[] args) throws Exception
  37. {
  38. NewMain newMain = new NewMain();
  39. for (byte i = 0; i < 100; i++)
  40. {
  41. System.out.printf("%3d - %7s - %5s - %5s\n",
  42. i, Integer.toBinaryString(i),
  43. newMain.isPalidrome(i), newMain.isPalidrome2(i));
  44. }
  45. }
  46. }
Success #stdin #stdout 0.1s 380544KB
stdin
Standard input is empty
stdout
  0 -       0 -  true -  true
  1 -       1 -  true -  true
  2 -      10 - false - false
  3 -      11 -  true -  true
  4 -     100 - false - false
  5 -     101 -  true -  true
  6 -     110 - false - false
  7 -     111 -  true -  true
  8 -    1000 - false - false
  9 -    1001 -  true -  true
 10 -    1010 - false - false
 11 -    1011 - false - false
 12 -    1100 - false - false
 13 -    1101 - false - false
 14 -    1110 - false - false
 15 -    1111 -  true -  true
 16 -   10000 - false - false
 17 -   10001 -  true -  true
 18 -   10010 - false - false
 19 -   10011 - false - false
 20 -   10100 - false - false
 21 -   10101 -  true -  true
 22 -   10110 - false - false
 23 -   10111 - false - false
 24 -   11000 - false - false
 25 -   11001 - false - false
 26 -   11010 - false - false
 27 -   11011 -  true -  true
 28 -   11100 - false - false
 29 -   11101 - false - false
 30 -   11110 - false - false
 31 -   11111 -  true -  true
 32 -  100000 - false - false
 33 -  100001 -  true -  true
 34 -  100010 - false - false
 35 -  100011 - false - false
 36 -  100100 - false - false
 37 -  100101 - false - false
 38 -  100110 - false - false
 39 -  100111 - false - false
 40 -  101000 - false - false
 41 -  101001 - false - false
 42 -  101010 - false - false
 43 -  101011 - false - false
 44 -  101100 - false - false
 45 -  101101 -  true -  true
 46 -  101110 - false - false
 47 -  101111 - false - false
 48 -  110000 - false - false
 49 -  110001 - false - false
 50 -  110010 - false - false
 51 -  110011 -  true -  true
 52 -  110100 - false - false
 53 -  110101 - false - false
 54 -  110110 - false - false
 55 -  110111 - false - false
 56 -  111000 - false - false
 57 -  111001 - false - false
 58 -  111010 - false - false
 59 -  111011 - false - false
 60 -  111100 - false - false
 61 -  111101 - false - false
 62 -  111110 - false - false
 63 -  111111 -  true -  true
 64 - 1000000 - false - false
 65 - 1000001 -  true -  true
 66 - 1000010 - false - false
 67 - 1000011 - false - false
 68 - 1000100 - false - false
 69 - 1000101 - false - false
 70 - 1000110 - false - false
 71 - 1000111 - false - false
 72 - 1001000 - false - false
 73 - 1001001 -  true -  true
 74 - 1001010 - false - false
 75 - 1001011 - false - false
 76 - 1001100 - false - false
 77 - 1001101 - false - false
 78 - 1001110 - false - false
 79 - 1001111 - false - false
 80 - 1010000 - false - false
 81 - 1010001 - false - false
 82 - 1010010 - false - false
 83 - 1010011 - false - false
 84 - 1010100 - false - false
 85 - 1010101 -  true -  true
 86 - 1010110 - false - false
 87 - 1010111 - false - false
 88 - 1011000 - false - false
 89 - 1011001 - false - false
 90 - 1011010 - false - false
 91 - 1011011 - false - false
 92 - 1011100 - false - false
 93 - 1011101 -  true -  true
 94 - 1011110 - false - false
 95 - 1011111 - false - false
 96 - 1100000 - false - false
 97 - 1100001 - false - false
 98 - 1100010 - false - false
 99 - 1100011 -  true -  true