Run ID:160589

提交时间:2026-09-24 15:13:17

#include<bits/stdc++.h> using namespace std; //高精度阶乘 void fact(int n) { int ans[3000] = {0}; //存大数,足够放1000! ans[0] = 1; //个位 int len = 1; //当前数字长度 for(int i = 2; i <= n; i++) { int carry = 0; //进位 for(int j = 0; j < len; j++) { int product = ans[j] * i + carry; ans[j] = product % 10; carry = product / 10; } while(carry > 0) { ans[len] = carry % 10; carry /= 10; len++; } } //逆序输出 for(int i = len -1; i >=0; i--) { cout << ans[i]; } cout << endl; } int main() { int a; while(cin >> a) { fact(a); } return 0; }