Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169855 | B班陈乐辰 | 高精度阶乘 | C++ | 运行超时 | 70 | 1000 MS | 416 KB | 917 | 2024-08-20 18:15:00 |
#include <iostream> #include <string> #include <vector> using namespace std; string mul(string a, string b) { vector<int> r(a.size() + b.size(), 0); for (int i = 0; i < a.size(); i++) { for (int j = 0; j < b.size(); j++) { int mul = (a[a.size() - 1 - i] - '0') * (b[b.size() - 1 - j] - '0'); r[i + j] += mul; r[i + j + 1] += r[i + j] / 10; r[i + j] %= 10; } } string rstring = ""; for (int i = r.size() - 1; i >= 0; i--) { rstring += to_string(r[i]); } while (rstring.size() > 1 && rstring[0] == '0') { rstring.erase(0, 1); } return rstring; } int main() { int n; cin >> n; string s = "1"; for (int i = 1; i <= n; i++) { s = mul(s, to_string(i)); } cout << n << "!=" << s << endl; return 0; }