gpt4 book ai didi

java - 改进添加 BigIntegers 的方法

转载 作者:行者123 更新时间:2023-12-01 18:14:42 25 4
gpt4 key购买 nike

今天早些时候,我编写了一个供个人使用的方法,该方法对作为参数给出的整数求和:

public class BigSum {
public static int sum(int... numbers) {
int sum = 0;
for(int n : numbers) {
sum += n;
}
return sum;
}
}

后来发现 int 值对于我的程序来说太小了,所以我改用 BigIntegers。我认为如果该方法将字符串作为参数,将它们转换为 BigIntegers,然后对它们求和,会更容易:

import java.math.*;

public class BigSum {
public static BigInteger sum(String... numbers) {
BigInteger sum = BigInteger.ZERO;
for(String n : numbers) {
BigInteger x = new BigInteger(n);
sum = sum.add(x);
}
return sum;
}
}

这段代码的唯一问题是您需要在双引号之间给出参数(因为它需要字符串),这通常非常不方便。我可以为 sum 方法做些什么来接受这样的参数:

BigInteger NUMBER = BigSum.sum(5, 6);

而不是:

BigInteger NUMBER = BigSum.sum("5", "6");

最佳答案

您可以接受 Object... 作为参数并使用 toString() 方法:

public static BigInteger sum(Object... numbers) {
BigInteger sum = BigInteger.ZERO;
for(Object n : numbers) {
BigInteger x = new BigInteger(n.toString());
sum = sum.add(x);
}
return sum;
}
// ...
BigInteger sum1 = BigSum.sum("5", 6); // 11
// With a real big integer
BigInteger sum2 = BigSum.sum("1234567891011121314151617181920", 1);
// 1234567891011121314151617181921

如果数字不是 BigInteger 的有效表示,此代码将抛出 NumberFormatException

关于java - 改进添加 BigIntegers 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414614/

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