#include <iostream> #include <vector> using namespace std; vector<int> multiply(vector<int> num, int multiplier) { vector<int> result; int carry = 0; for (int i = 0; i < num.size(); ++i) { int product = num[i] * multiplier + carry; result.push_back(product % 10); carry = product / 10; } while (carry) { result.push_back(carry % 10); carry /= 10; } return result; } // 计算n的阶乘 vector<int> factorial(int n) { vector<int> result = {1}; for (int i = 2; i <= n; ++i) { result = multiply(result, i); } return result; } int main() { int n; cin >> n; vector<int> result = factorial(n); for (int i = result.size() - 1; i >= 0; --i) { cout << result[i]; } cout << endl; return 0; } /************************************************************** Problem: 1285 User: panyuchen Language: C++ Result: Accepted Time:16 ms Memory:2076 kb ****************************************************************/