嗨,我是新的golang编程语言。我可以从事实函数中获取bigint 值,但它不能与添加 函数一起使用。得到bigInt数字golang的总和
我有加入函数接受bigint,但是当我尝试添加一个 .Mod和.Div方法时,它返回0因为某种原因。 add函数中的if else 语句是我使用的旧语句,当我的 具有来自事实函数的int值时。
当它作为int值时它工作得很完美。当我试图 更改if else语句来接受bigint值时,我无法让它 工作。
我已经尝试过.Mod和.Div方法,它们正在打印出 正确的值。但是当我尝试将它们加在一起时,即使值为“22”,“2”,它总是会返回 0。我现在已经把if语句放回原始的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'是不确定的。你忘了遗漏全球定义吗?另外,'number'(add()'的参数)是一个'* big.Int',所以'add'函数中的操作符没有任何意义(即''''''''' ,'+'等等,它们没有为'* big.Int'和'int'类型定义)。 – PaSTE