题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

package main

import (
    "fmt"
    "math"
    "bufio"
    "os"
)

func culuate(s string) int {
    var sum int
    var idx int

    for i:=len(s)-1; i>=2; i-- {
        if '0' <= s[i] && s[i] <= '9' {
            sum += int(s[i] - '0') * int(math.Pow(float64(16), float64(idx)))
        } else if 'A' <= s[i] && s[i] <= 'Z' {
            sum += int(s[i] - 'A' + 10) * int(math.Pow(float64(16), float64(idx)))
        }
        idx++
    }

    return sum
}

func main() {
    var s string

    inputReader := bufio.NewReader(os.Stdin)
    data, _, _ := inputReader.ReadLine()
    s = string(data)

    sum := culuate(s)
    fmt.Println(sum)
}
// 由于输入的是一个字符串,所以依旧采用 inputReader.ReadLine() 的方式
题解中引入了 math 官方包,使用了 math.Pow() 方法

全部评论

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务