#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: lijinkai
Language: C++
Result: Accepted
Time:15 ms
Memory:2076 kb
****************************************************************/