Amonin

Large Factorial

Jan 2nd, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5. #include <cmath>
  6. #include <algorithm>
  7. using namespace std;
  8. int main() {
  9. ifstream fin("input.txt");
  10. int num;
  11. fin >> num;
  12. vector<int> v = { 1 };
  13. vector<int> v_mul = { 0 };
  14. int carry = 0;
  15. for (int i = 2; i <= num; ++i) {
  16. carry = 0;
  17. int size = to_string(i).length() + 1;
  18. for (int j = 0; j < size; ++j) v_mul.push_back(0);
  19. for (int j = 0; j < v.size(); ++j) {
  20. carry += v[j] * i;
  21. v_mul[j] = carry % 10;
  22. carry /= 10;
  23. }
  24. v_mul[v.size()] = carry;
  25. int k = v.size();
  26. while (carry > 0) {
  27. v_mul[k] = carry % 10;
  28. carry /= 10;
  29. ++k;
  30. }
  31. while (v_mul[v_mul.size() - 1] == 0) {
  32. v_mul.pop_back();
  33. }
  34. v = v_mul;
  35. v_mul = { 0 };
  36. v_mul.resize(v.size());
  37. }
  38. ofstream cout("output.txt");
  39. reverse(v.begin(), v.end());
  40. for (auto el : v) {
  41. cout << el;
  42. }
  43. cout << endl;
  44. cout.close();
  45. fin.close();
  46. system("pause");
  47. }
Advertisement
Add Comment
Please, Sign In to add comment