Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
199044 zgnzgn 高精度阶乘 C++ 通过 100 396 MS 392 KB 725 2025-10-21 14:53:10

Tests(10/10):


#include <bits/stdc++.h> // 万能头 using namespace std; int a[40000]; int main() { int n; cin >> n; // 输入 a[1] = 1; // 初始1的阶乘是1 a[0] = 1; // a数组的位数 for(int i = 2; i <= n; i++) { int t = 0; // t 代表进位 for(int j = 1; j <= a[0]; j++) { a[j] = a[j] * i + t; // 每次都加上进位 t = a[j] / 10; // 直接算进位 a[j] %= 10; // 剩个位 } while(t > 0) { // 处理进位 a[0] ++; // 有进位,怕不够,于是我向前加了一位... a[a[0]] = t % 10; // 直接首位加上进位 t /= 10; } } printf("%d!=",n); for(int i = a[0]; i > 0; i--) { // 输出 cout << a[i]; } return 0; // 完结撒花ヽ(°▽°)ノ ... }


测评信息: