私はプロジェクトオイラーの問題を解決しています 16、論理的に解決できるコードになりましたが、オーバーフローか何かだと思うので処理できませんか? int の代わりに int64 を試しましたが、0,0 しか出力されません。パワーを30未満に変更すると機能しますが、30を超えると機能しません。誰か私の間違いを指摘できますか? 2 ^ 1000を計算できないと思います。
// PE_16 project main.go
package main
import (
"fmt"
)
func power(x, y int) int {
var pow int
var final int
final = 1
for pow = 1; pow <= y; pow++ {
final = final * x
}
return final
}
func main() {
var stp int
var sumfdigits int
var u, t, h, th, tth, l int
stp = power(2,1000)
fmt.Println(stp)
u = stp / 1 % 10
t = stp / 10 % 10
h = stp / 100 % 10
th = stp / 1000 % 10
tth = stp / 10000 % 10
l = stp / 100000 % 10
sumfdigits = u + t + h + th + tth + l
fmt.Println(sumfdigits)
}