在Java中如何找出两个长整数的模数(%)?我的代码显示“Integer number too large”,然后是我尝试取模的数字。我尝试将其转换为长整数,但它没有起作用。我需要将其转换为BigInteger并使用余数方法吗?谢谢。
在Java中如何找出两个长整数的模数(%)?我的代码显示“Integer number too large”,然后是我尝试取模的数字。我尝试将其转换为长整数,但它没有起作用。我需要将其转换为BigInteger并使用余数方法吗?谢谢。
%
操作符可以用于长整型。听起来你可能忘记在数字字面量的末尾加上 L
,例如 123456789L
。能否让我们看看你的代码?
你只能使用最大为 2 147 483 647 的整数。如果你想使用更大的数字,比如 30 亿,你必须将其指定为长整型。
class Descartes {
public static void main(String[] args) {
long orig = Long.MAX_VALUE;
long mod = orig % 3000000000; // ERROR 3000000000 too big
long mod = orig % 3000000000L; // no error, specified as a long with the L
}
}
请记住,您可以使用大写或小写的L,但建议使用大写,因为小写看起来与数字1非常相似。
code
total = total.add(BigInteger.valueOf(b(i)%1234567891011)code
- Descartes