Pagini recente » Cod sursa (job #423632) | Cod sursa (job #128989) | Cod sursa (job #2888626) | Cod sursa (job #2036241) | Cod sursa (job #2772656)
#include <iostream>
#include <chrono>
#include <fstream>
#include <vector>
#include <cstdlib>
int process(int n) {
int final = 0;
for (int i = 1; i <= n; ++i) {
int tmp = i;
for (int j = 1; j < i; ++j) {
tmp *= i;
tmp %= 10;
// if (tmp == 0) {
// break;
// }
}
final += tmp;
final = final % 10;
}
return final % 10;
}
void cifra() {
std::ifstream f1;
std::ofstream f2;
f1.open("../cifra.in");
f2.open("../cifra.out");
int number_of_numbers;
f1 >> number_of_numbers;
std::vector<int> numbers(number_of_numbers);
std::vector<int> precompute(111);
for (int i = 1; i < 111; ++i) {
int computed_i = process(i);
precompute[i] = computed_i;
}
// {
// const int MAX = 10000;
// char buffer[MAX];
//
// for (int i = 0; i < number_of_numbers; ++i) {
// f1 >> buffer;
// int length = strlen(buffer);
// int res = buffer[length - 1] - '0';
// numbers.push_back(res);
// }
// }
for (auto &n: numbers) {
f1 >> n;
}
for (int i = 0; i < numbers.size(); ++i) {
f2 << precompute[numbers[i] % 100];
if (i < numbers.size() - 1) {
f2 << '\n';
}
}
}
int main() {
auto start = std::chrono::high_resolution_clock::now();
cifra();
auto stop = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(stop - start);
std::cout << std::endl << "[time]:" << duration.count() << std::endl;
return 0;
}