Search code examples
indexinggoint

Reverse int golang


How to change 12345 to 54321? With a string, you can change the string to a rune, and reverse it, but you cannot do the same for an integer. I have searched and found no one talking about this. Examples
131415 >>> 514131
1357 >>> 7531
123a >>> ERROR
-EDIT-
I was thinking, why not create a slice and index that?
Then I realized that you can't index int
(http://play.golang.org/p/SUSg04tZsc)
MY NEW QUESTION IS
How do you index an int? OR
How do you reverse a int?


Solution

  • Here is a solution that does not use indexing an int

    package main
    
    import (
        "fmt"
    )
    
    func reverse_int(n int) int {
        new_int := 0
        for n > 0 {
            remainder := n % 10
            new_int *= 10
            new_int += remainder 
            n /= 10
        }
        return new_int 
    }
    
    func main() {
        fmt.Println(reverse_int(123456))
        fmt.Println(reverse_int(100))
        fmt.Println(reverse_int(1001))
        fmt.Println(reverse_int(131415))
        fmt.Println(reverse_int(1357))
    }
    

    Result:

    654321
    1
    1001
    514131
    7531
    

    Go playground