私は新しいプログラミングに一般的なので、私は愚かな質問を求めるために再度downvotedを得ないことを願っています。 私はプロジェクトのオイラーの問題を解決するために働いています.25桁の「1000桁のフィボナッチ数」で、私は奇妙な動作に遭遇しました。次のコードは、この動作の結果として書いたものです。ゴラン:奇妙なビッグIntの振る舞い
package main
import (
"fmt"
"math/big"
)
func main() {
index := 2
l := new(big.Int)
pl := big.NewInt(1)
i := big.NewInt(1)
for {
l = i
i.Add(i, pl)
pl = l
index++
if len(i.String()) == 1000 {
break
}
}
fmt.Println(i, "\nindex: ", index)
}
私はうっかり2のべき乗を生成するためのきちんとした方法を発見していたことを発見した理由を決定する過程で、私は次の変更を行い、これが正しい結果を生成しなかったので、当然のことながら、これは正しい答えを生成しませんでした。私の質問は、各大のInt変数iの値に設定されるようになり、これは大きなを割り当てるための正しい方法ではありませんでした場合は、なぜこれがエラーを生成しませんでした最初の例で起こっていることである
package main
import (
"fmt"
"math/big"
)
func main() {
index := 2
l := new(big.Int)
pl := big.NewInt(1)
i := big.NewInt(1)
for {
l.Set(i)
i.Add(i, pl)
pl.Set(l)
index++
if len(i.String()) == 1000 {
break
}
}
fmt.Println(i, "\nindex: ", index)
}
int var値?私はこのような状況に対して単に間違っている正当なbig Int操作ですか?
l = i
と
pl = l
ありがとうございます。それは完璧な意味合いがあります。 –