안녕하세요 저는 golang 프로그래밍 언어를 처음 사용합니다. 팩터 기능에서 bigint 값을 얻을 수 있지만 추가는 함수와 함께 작동하지 않습니다.bigInt number golang의 합계
bigint를 허용하는 추가 기능이 있지만 .Mod 및 .Div 메서드를 추가하려고하면 어떤 이유로 0이 반환됩니다. 추가 함수에있는 else 문은 내가 이 factoral 함수에서 오는 int 값을 가질 때 사용했던 오래된 문입니다.
int 값일 때 완벽하게 작동했습니다. 내가 시도했을 때 bigint 값을 받아들이 기 위해 if 문을 변경하면 전혀 작동하지 않을 수 있습니다. .
.Mod 및 .Div 메서드를 시도했으며 올바른 값인 을 출력하고 있습니다. 하지만.하려고 할 때 그것들을 함께 추가하면 값이 "22", "2"이더라도 항상 을 반환합니다. if else 문을 원래의 int 값으로 되돌려 놓았습니다.
누구든지 나를 도와 줄 수 있다면 매우 유용 할 것입니다.
package main
import (
"fmt"
"math/big"
)
func factoral(n uint64) (r *big.Int) {
one, bn := big.NewInt(1), new(big.Int).SetUint64(n)
r = big.NewInt(1)
if bn.Cmp(one) <= 0 {
return
}
for i := big.NewInt(2); i.Cmp(bn) <= 0; i.Add(i, one) {
r.Mul(r, i)
}
return
}
func add(number *big.Int) *big.Int {
//this the statement that works with normal int values
if number/10 < 10 {
return sum + number/10
} else {
return sum + add(number/10)
}
}
func main() {
fmt.Println(add(factoral(100)))
}
여기서 sum은 정의되지 않습니다. 당신은 세계적인 정의를 빠뜨리는 것을 잊었습니까? 또한,'add()'에 대한 인수 인'number '는'* big.Int'이므로'add' 함수의 연산자는 이해할 수 없습니다 (즉,'/','<' ,'+'등등,'* big.Int'와'int' 타입을 위해 정의되지 않았습니다). – PaSTE