長い数字の文字列の一部である数桁の乗算結果を計算しようとしています。これが私のコードです:
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 ポインター逆参照 [signal 0xc0000005 code=0x0 addr=0x20 pc=0x40130e]
goroutine 1 [実行中]: main.getMult(0x3, 0x534d40, 0x1a, 0x4d2701) test.go:25 +0x17e main.main() test.go:10 +0x55 終了ステータス 2