gpt4 book ai didi

java - 求和 BigInteger 数字

转载 作者:搜寻专家 更新时间:2023-11-01 02:45:52 24 4
gpt4 key购买 nike

我试图找到数字 2^1000 的数字总和,为此我使用 Java BigInteger 类。但是,我无法让它成为现实。最终,我使用以下代码得到 0(零)。可能是什么问题?

谢谢...


在 Kon 的帮助下我解决了这个问题,但是这次我得到了错误的结果。谁能看出算法的问题?

public static void main(String []args) throws Exception
{
BigInteger big = BigInteger.valueOf(2).pow(1000);
BigInteger big2 = BigInteger.valueOf(0);


//System.out.println(big);

for(long i = 1; i<283; i++)
{
big2 = big2.add(big.mod(BigInteger.valueOf((long) Math.pow(10,i))).divide(BigInteger.valueOf((long)Math.pow(10,i-1))));
}

System.out.println(big2);
}

最佳答案

尝试使用 mod 计算 BigInteger 的每个数字不是很有效,因为您在此过程中进行了很多方法调用。相反,您可以通过转换为 String 并直接获取每个数字来简化。

BigInteger big = BigInteger.valueOf(2).pow(1000);
String digits = big.toString();
int sum = 0;

for(int i = 0; i < digits.length(); i++) {
int digit = (int) (digits.charAt(i) - '0');
sum = sum + digit;
}

System.out.println(sum);

关于java - 求和 BigInteger 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275068/

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