为了账号安全,请及时绑定邮箱和手机立即绑定

反向整数组

反向整数组

Go
万千封印 2021-12-20 17:12:22
如何更改12345到54321?对于字符串,您可以将字符串更改为 a rune,然后将其反转,但不能对整数执行相同操作。我已经搜索过,发现没有人谈论这个。例子131415>>> 5141311357>>> 7531123a>>> ERROR-EDIT-我在想,为什么不创建一个slice和索引呢?然后我意识到你不能索引int( http://play.golang.org/p/SUSg04tZsc )我的新问题是你如何索引一个 int? 或者你如何反转一个int?
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

这是一个不使用索引的解决方案 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))

}

结果:


654321

1

1001

514131

7531


查看完整回答
反对 回复 2021-12-20
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

与第一个答案非常相似,但这会检查以确保您不会超出类型范围。


func reverse(x int) int {    

    rev := 0

    for x != 0 {

        pop := x % 10

        x /=  10

        if rev > math.MaxInt32/10 || (rev == math.MaxInt32 /10 && pop > 7) {

            return 0

        }

        if rev < math.MinInt32/10 || (rev == math.MinInt32/10 && pop < -8) {

            return 0

        }

        rev = rev * 10 + pop

    }


    return rev

}


查看完整回答
反对 回复 2021-12-20
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

我将整数转换为字符串,反转字符串,然后将结果转换回字符串。


package main


import (

    "fmt"

    "strconv"

)


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))


}


func reverse_int(value int) int {


    intString := strconv.Itoa(value)


    newString := ""


    for x := len(intString); x > 0; x-- {

        newString += string(intString[x - 1])

    }


    newInt, err := strconv.Atoi(newString)


    if(err != nil){

        fmt.Println("Error converting string to int")

    }


    return newInt

}


查看完整回答
反对 回复 2021-12-20
  • 3 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号