fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4. using namespace std;
  5. vector<int> multiply (const vector<int> &s, int b, int base) {
  6. vector<int> c;
  7. int carry = 0;
  8. for (int i = 0; i < s.size(); i++) {
  9. long long res = (long long)s[i] * b + carry;
  10. carry = res / 1000;
  11. c.push_back(res % base);
  12. }
  13. if (carry > 0) {
  14. c.push_back(carry);
  15. }
  16. return c;
  17. }
  18. int main() {
  19. int n;
  20. int base = 1000;
  21. cin >> n;
  22. vector<int> res;
  23. res.push_back(1);
  24. for (int i = 1; i < n; i++) {
  25. res = multiply(res, i + 1, base);
  26. }
  27. cout << res[res.size() - 1];
  28. for (int i = res.size() - 2; i >= 1; i--) {
  29. cout << setw(3) << setfill('0') << res[i];
  30. }
  31. }
  32.  
Success #stdin #stdout 0s 4512KB
stdin
500
stdout
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000