站外题,求一个高精写法
  • 板块学术版
  • 楼主是Cat_Meow鸭
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/7/29 20:51
  • 上次更新2023/10/27 17:47:41
查看原帖
站外题,求一个高精写法
215949
是Cat_Meow鸭楼主2022/7/29 20:51

题目链接 目前代码:

#include <bits/stdc++.h>
using namespace std;
int n, i, j;
__int128 a[100005];
inline void print(__int128 x) {
    if (x < 0) {
        putchar('-');
        x = -x;
    }
    if (x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}
int main() {
    scanf("%d", &n);
    if (n == 1) return printf("1"), 0;
    int x = n;
    i = 2;
    while (x >= i) {
        a[j++] = i;
        x = x - i;
        i++;
    }
    int p = j;
    j--;
    while (x--) {
        a[j]++;
        j = (j - 1 + p) % p;
    }
    __int128 sum = 1;
    for (int s = 0; s < p; s++) {
        sum = sum * a[s];
    }
    print(sum);
    return 0;
}

输入1000以上的数字会爆int128!

2022/7/29 20:51
加载中...