社区讨论

BigInteger过于好用

P1249最大乘积参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lown4z2v
此快照首次捕获于
2023/11/13 16:26
2 年前
此快照最后确认于
2023/11/13 19:01
2 年前
查看原帖
rt,由于 BigInteger BigInteger 过于好用,导致我放弃了C++。
不过为什么这个代码“Java8”能过,“自动识别语言”就过不了呢?
JAVA
import 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 条回复,欢迎继续交流。

正在加载回复...