按题意直接模拟即可。

code:

#include <bits/stdc++.h>
using namespace std;
const int MAX_DIGITS = 500000;

int main() {
    int digits[MAX_DIGITS] = {0};
    digits[0] = 1;
    int digit_count = 1;
    for (int i = 2; i <= 100000; i++) {
        int carry = 0;
        for (int j = 0; j < digit_count; j++) {
            long long product = (long long)digits[j] * i + carry;
            digits[j] = product % 10;
            carry = product / 10;
        }
        while (carry > 0) {
            digits[digit_count] = carry % 10;
            carry /= 10;
            digit_count++;
        }
    }
    for (int i = digit_count - 1; i >= 0; i--) {
        cout << digits[i];
    }
    return 0;
}

代码可能要跑大约 2min2 \min,请耐心等待。