#include <iostream> #include<vector> #include<string> using namespace std; vector<int> multiply(vector<int>a, int b) { vector<int>c; int t = 0;//进位 //进位不为0时循环不能停,别忘了 for (int i = 0; i < a.size()||t; i++) { if(i<a.size()) t += a[i] * b; c.push_back(t % 10); t /= 10; } return c; } int main() { //高精度是倒着存 vector<int>a; string str; int n; cin >> n; // str=to_string(n); // for(int i=str.size()-1;i>=0;i--){ // a.push_back(str[i]); // } a.push_back(1); for (int i = n; i > 0; i--) { a = multiply(a, i); } for (int i = a.size() - 1; i >= 0; i--) cout << a[i]; } // 64 位输出请用 printf("%lld")