题解 | #进制转换#
进制转换
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() 方法
查看15道真题和解析
