1. /**
    2. * @param n: non-negative integer n.
    3. * @return: return whether a binary representation of a non-negative integer n is a palindrome.
    4. */
    5. func IsPalindrome (n int) bool {
    6. // Write your code here
    7. m := 0
    8. b := toBinary(n)
    9. tmp := b
    10. for tmp > 0 {
    11. m = tmp % 10 + m * 10
    12. tmp /= 10
    13. }
    14. return m == b
    15. }
    16. func toBinary(n int) int {
    17. i := 0
    18. b := 0
    19. for n > 0 {
    20. b = (n % 2) * pow(10,i) + b
    21. i++
    22. n /= 2
    23. }
    24. return b
    25. }
    26. func pow(n,k int) int {
    27. res := 1
    28. for i := 0; i < k; i++ {
    29. res *= n
    30. }
    31. return res
    32. }