36进制由0-9,a-z,共36个字符表示,最小为'0'
'0''9'对应十进制的09,'a''z'对应十进制的1035
例如:'1b' 换算成10进制等于 1 * 36^1 + 11 * 36^0 = 36 + 11 = 47
要求按照加法规则计算出任意两个36进制正整数的和
如:按照加法规则,计算'1b' + '2x' = '48'
要求:不允许把36进制数字整体转为10进制数字,计算出10进制数字的相加结果再转回为36进制
思路: 按照十进制的加法方法,满36向前进一位
GetInt:将’0’-‘9’映射到数字0-9,将’a’-'z’映射到数字10-35
package main
import "fmt"
func GetInt(a uint8) int {
if a-'0' > 0 && a <= '9' {
return int(a - '0')
} else {
return int(a-'a') + 10
}
}
func main(){
fmt.Println(GetInt('b'))
}
$ go run test.go
35
36进制算法go实现:
package main
import "fmt"
func GetInt(a uint8) int {
if a-'0' > 0 && a <=