大整数 % (mod)
Biginteger % (mod)
我的代码的任务是显示一个数字是否与数字 1-12 相除。如果是那么它应该打印(“1”),如果不是(“0”)。
示例:
Input == 6;
Output == 111001000000;
问题是“%”不适用于 BigInteger。我已经搜索了一个解决方案,发现 BigInteger mod(BigInteger other) 应该可以完成这项工作,但我无法真正理解它我该如何使用它,因为我每次和每一种方式都尝试使用它。它会引发错误。
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger bi = sc.nextBigInteger();
for (int i = 1; i <= 12; i++) {
if (bi % i == 0) {
System.out.print("1");
}
if (bi % i != 0) {
System.out.print("0");
}
}
}
}
当您使用Integer
时,jdk会为您自动装箱和自动拆箱。所以你可以用运算符 %
修改它们,就像使用原始值一样。
虽然 jdk 不会自动装箱或自动拆箱 BigInteger
,但您必须显式调用 mod
方法。
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger bi = sc.nextBigInteger();
for (int i = 1; i <= 12; i++) {
if (bi.mod(BigInteger.valueOf(i)).equals(BigInteger.ZERO)) {
System.out.print("1");
} else {
System.out.print("0");
}
}
}
}
我的代码的任务是显示一个数字是否与数字 1-12 相除。如果是那么它应该打印(“1”),如果不是(“0”)。
示例:
Input == 6;
Output == 111001000000;
问题是“%”不适用于 BigInteger。我已经搜索了一个解决方案,发现 BigInteger mod(BigInteger other) 应该可以完成这项工作,但我无法真正理解它我该如何使用它,因为我每次和每一种方式都尝试使用它。它会引发错误。
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger bi = sc.nextBigInteger();
for (int i = 1; i <= 12; i++) {
if (bi % i == 0) {
System.out.print("1");
}
if (bi % i != 0) {
System.out.print("0");
}
}
}
}
当您使用Integer
时,jdk会为您自动装箱和自动拆箱。所以你可以用运算符 %
修改它们,就像使用原始值一样。
虽然 jdk 不会自动装箱或自动拆箱 BigInteger
,但您必须显式调用 mod
方法。
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger bi = sc.nextBigInteger();
for (int i = 1; i <= 12; i++) {
if (bi.mod(BigInteger.valueOf(i)).equals(BigInteger.ZERO)) {
System.out.print("1");
} else {
System.out.print("0");
}
}
}
}