【发布时间】:2016-11-03 10:40:10
【问题描述】:
我正在尝试计算作为长数字字符串一部分的几位数字的乘法结果。这是我的代码:
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
但我遇到了运行时错误:
panic:运行时错误:无效的内存地址或 nil 指针取消引用 [信号0xc0000005代码=0x0 addr=0x20 pc=0x40130e]
goroutine 1 [运行中]: main.getMult(0x3, 0x534d40, 0x1a, 0x4d2701) test.go:25 +0x17e main.main() 测试.go:10 +0x55 退出状态2
【问题讨论】: