反向int golang

XXX*_*XXX 0 indexing int go

如何更改1234554321?使用字符串,您可以将字符串更改为rune,然后将其反转,但是不能对整数进行相同的操作。我搜索后发现没有人在谈论这一点。示例
131415>>> 514131
1357>>> 7531
123a>>> 错误
-EDIT-
我在想,为什么不创建一个sliceand index that?
然后我意识到您无法索引int
http://play.golang.org/p/SUSg04tZsc
我的新问题是
如何索引一个int?
如何反转一个int?

Aka*_*all 5

这是不使用索引的解决方案 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))
}
Run Code Online (Sandbox Code Playgroud)

结果:

654321
1
1001
514131
7531
Run Code Online (Sandbox Code Playgroud)

去操场

  • Gophers 喜欢避免拉入不必要的包或使用不必要的内存。如果代码运行得如此频繁,以至于 CPU 时间或功耗成为一个问题,他们会选择将解决方案保留在整数域中 - 而且需要覆盖的错误情况也更少。大多数从整数到字符串的转换都会使用一个循环,该循环在每次迭代中都会执行自己的模 10。然后是一个反转字符串的循环。然后是一个循环,乘以 10 得到一个整数。要求计算机做太多繁忙的工作。那么负整数呢? (2认同)