| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436397 | 顾鑫辰 | 【C9-1】阶乘和 | C++ | 通过 | 100 | 4 MS | 288 KB | 1064 | 2026-04-14 16:35:35 |
#include <iostream> #include <vector> #include <algorithm> using namespace std; vector<int> mul(vector<int> a, int b) { vector<int> res; int carry = 0; for (int x : a) { carry += x * b; res.push_back(carry % 10); carry /= 10; } while (carry) { res.push_back(carry % 10); carry /= 10; } return res; } vector<int> add(vector<int> a, vector<int> b) { vector<int> res; int carry = 0; int i = 0; while (i < a.size() || i < b.size() || carry) { if (i < a.size()) carry += a[i]; if (i < b.size()) carry += b[i]; res.push_back(carry % 10); carry /= 10; i++; } return res; } int main() { int n; cin >> n; vector<int> sum = {0}; vector<int> fact = {1}; for (int i = 1; i <= n; i++) { fact = mul(fact, i); sum = add(sum, fact); } reverse(sum.begin(), sum.end()); for (int x : sum) cout << x; cout << endl; return 0; }