Pagini recente » Cod sursa (job #1445250) | Cod sursa (job #435703) | Cod sursa (job #697210) | Cod sursa (job #1788311) | Cod sursa (job #2308194)
#include <iostream>
#include <fstream>
#include <cstring>
const int U[21] = {0, 1, 5, 2, 8, 3, 9, 2, 8, 7, 7, 8, 4, 7, 3, 8, 4, 1, 5, 4, 4};
int last_digit(std::string huge_number){
int last_two_digits = huge_number[huge_number.size() - 1] + (int)huge_number[huge_number.size() - 2] * 10 - 48;
std::cout << last_two_digits << '\n';
if(last_two_digits <= 20){
return U[last_two_digits];
}
else{
int div20 = 4 * last_two_digits / 20;
return (div20 + U[last_two_digits - div20]) % 10;
}
}
int main()
{
std::ifstream in("cifra.in");
std::ofstream out("cifra.out");
//number of cases
int T;
in >> T;
//read huge numbers and determine the last digit as requested
in.get();
while(--T >= 0){
std::string huge_number;
std::getline(in, huge_number);
out << last_digit(huge_number) << '\n';
}
return 0;
}