我正在尝试计算作为长数字字符串一部分的几个数字的乘法结果。这是我的代码:
package main
import (
"fmt"
"strconv"
)
func main() {
inputNum := "73167176531330624919225119"
mult := getMult(3, inputNum)
fmt.Printf("Mult = %d", mult)
}
func getMult(startIndex int, inputNum string) int {
mult := 0
for i := 0; i < 10; i++ {
digit, err := strconv.Atoi(string(inputNum[startIndex+i]))
if err != nil {
mult *= int(digit)
} else {
fmt.Printf("Error converting %s to int : %s\n", string(inputNum[startIndex+i]), err.Error())
}
}
return mult
}
我想要得到的结果是 6*7*1*7*6*5*3*1*3*3 = 238140
但我得到一个运行时错误:
恐慌:运行时错误:无效的内存地址或 nil 指针取消引用 [信号 0xc0000005 代码 = 0x0 地址 = 0x20 pc = 0x40130e]
goroutine 1 [运行]: main.getMult(0x3, 0x534d40, 0x1a, 0x4d2701) test.go:25 +0x17e main.main() test.go:10 +0x55 退出状态 2