gpt4 book ai didi

java - BigInteger 加法总是 0

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:29 25 4
gpt4 key购买 nike

我有以下问题:当尝试添加到 BigIntegers 的总和时,结果仍然为 0。

代码如下:

 public void NumberOfOutcomes(int x, int y){
BigInteger first = BigInteger.valueOf(0);
BigInteger second = BigInteger.valueOf(0);
for(int i = 0; i <= (x / 2); i++){
first.add( fac(x - i).divide((fac(x - 2*i).multiply(fac(i)))) );
System.out.println("First " + first.add( fac(x - i).divide((fac(x - 2*i).multiply(fac(i)))) ));
}

for(int i = 0; i <= (y / 2); i++){
second.add( fac(y - i).divide((fac(y - 2*i).multiply(fac(i)))) );
System.out.println("Second " + second.add( fac(y - i).divide((fac(y - 2*i).multiply(fac(i)))) ));
}
System.out.println("First " + first);
System.out.println("Second " + second);
System.out.println(first.multiply(second));
}

这里 fac 是阶乘函数。

这是终端上的内容:

points1.NumberOfOutcomes(2, 3)
First 1
First 1
Second 1
Second 2
First 0
Second 0
0

最佳答案

这是因为 BigInteger不可变的,这意味着它的值不会改变。所以 first.add(x) 将创建包含计算结果的一个新的 BigInteger,即将结果重新分配给 first,如 first = first.add(...).

关于java - BigInteger 加法总是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com