社区讨论
BigInteger过于好用
P1249最大乘积参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lown4z2v
- 此快照首次捕获于
- 2023/11/13 16:26 2 年前
- 此快照最后确认于
- 2023/11/13 19:01 2 年前
rt,由于 过于好用,导致我放弃了C++。
不过为什么这个代码“Java8”能过,“自动识别语言”就过不了呢?
JAVAimport java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[10000];
int sum = 0;
int index = 0;
BigInteger multiple = BigInteger.valueOf(1);
if (n == 3) {
arr[0] = 1;
}
for (int i = 2; i < n; ++i) {
sum += i;
arr[i] = i;
if (sum >= n) {
index = i;
break;
}
}
int differ = sum - n;
if (sum > n) {
if (differ == 1) {
arr[2] = 0;
arr[index]++;
if (arr[index] == n) {
arr[0] = 1;
arr[index]--;
}
} else {
arr[differ] = 0;
}
}
for (int i = 0; i < n; ++i) {
if (arr[i] != 0) {
multiple = multiple.multiply(BigInteger.valueOf(arr[i]));
System.out.print(arr[i] + " ");
}
}
System.out.println();
System.out.println(multiple);
}
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...