그래서 나는 새롭고 일반적으로 프로그래밍에 익숙하지 않으므로 어리석은 질문을 묻기 위해 다시 downvoted하지 않기를 바란다. 프로젝트 오일러 문제와 문제 25 "1000 자리 피보나치 수"를 통해 내 방식대로 작업 중입니다. 이상한 행동으로 보이는 항목이 있습니다. 다음은이 동작을 초래 한 코드입니다. 실수로 나는 다음과 같은 변화를 만들어 2의 힘을 생성하는 깔끔한 방법을 발견하고이 올바른 결과를 생성 한 나는 내가 가진 것을 발견 이유를 결정하는 과정에서, 그래서골란 : 괴상한 큰 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)
}
는 당연히이 정답을 생성하지 않았다 .
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 인 변수 i 값으로 설정하고,이 큰를 할당하는 올바른 방법 아니었다면 왜 이런 오류가 발생하지 않은 원인이 첫 번째 예에서 일어나는 것입니다 int var 값? i = l, 등등은이 상황에서 단순히 부정확 한 합법적 인 큰 Int 연산입니까?
감사합니다. 그건 완벽하게 이해가됩니다. –