提交时间:2026-04-14 16:35:35
运行 ID: 436397
#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; }