gpt4 book ai didi

java - 如何计算大于限制的数字,并使用 BigInteger

转载 作者:行者123 更新时间:2023-12-02 10:52:39 25 4
gpt4 key购买 nike

下面的代码计算 2^15 的数字总和。如果我将 for 循环条件更改为 15,则 d2 变为 2^16。 --> 我想要 2^15。然后我把它改成999,数字之和不匹配。 (总和:1189)

还有其他方法吗?

public void go()
{
int sum = 0;
BigInteger d2 = BigInteger.ONE.add(BigInteger.ONE);
BigInteger two = d2;

for(int i = 0; i < 14; i++)
{
System.out.println(d2);
d2 = d2.multiply(two);
}

System.out.println("\n" + d2);

double val = d2.doubleValue();
double temp = val;
while(val > 0)
{
temp = val % 10;
val /= 10;
sum += temp;
System.out.println(temp);
}

System.out.println("Sum: " + sum);

}

最佳答案

当它看起来像BigInteger.divideAndRemainder时,您切换到double来计算数字之和。就是您所需要的。

你会得到类似的东西:

temp = d2;

while (temp.compareTo(BigInteger.ZERO) > 0) {
BigInteger[] divideAndRemainder = temp.divideAndRemainder(BigInteger.valueOf(10));
temp = divideAndRemainder[0];
sum = sum.add(divideAndRemainder[1]);
}

关于java - 如何计算大于限制的数字,并使用 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041871/

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