Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- int main() {
- ifstream fin("input.txt");
- int num;
- fin >> num;
- vector<int> v = { 1 };
- vector<int> v_mul = { 0 };
- int carry = 0;
- for (int i = 2; i <= num; ++i) {
- carry = 0;
- int size = to_string(i).length() + 1;
- for (int j = 0; j < size; ++j) v_mul.push_back(0);
- for (int j = 0; j < v.size(); ++j) {
- carry += v[j] * i;
- v_mul[j] = carry % 10;
- carry /= 10;
- }
- v_mul[v.size()] = carry;
- int k = v.size();
- while (carry > 0) {
- v_mul[k] = carry % 10;
- carry /= 10;
- ++k;
- }
- while (v_mul[v_mul.size() - 1] == 0) {
- v_mul.pop_back();
- }
- v = v_mul;
- v_mul = { 0 };
- v_mul.resize(v.size());
- }
- ofstream cout("output.txt");
- reverse(v.begin(), v.end());
- for (auto el : v) {
- cout << el;
- }
- cout << endl;
- cout.close();
- fin.close();
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment