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