Pagini recente » Cod sursa (job #2461477) | Cod sursa (job #271822) | Cod sursa (job #2544126) | Cod sursa (job #938659) | Cod sursa (job #1559395)
#include <fstream>
#include <iostream>
#include <string>
int cifra(const std::string& buffer) {
const int partialSum[] = {
0, 1, 5, 2, 8, 3, 9, 2, 8, 7, 7, 8, 4, 7, 3, 8, 4, 1, 5, 4
};
int size = buffer.size(),
n = buffer[size - 1] - '0',
multiplier,
result = 0;
if (size > 1) {
n += 10 * (buffer[size - 2] - '0');
multiplier = ((((n - (n % 20)) / 10) % 5) * 3) % 5;
result += partialSum[19] * multiplier;
}
result += partialSum[n % 20];
return result % 10;
}
int main() {
char const * const inputFile = "cifra.in",
* const outputFile = "cifra.out";
std::ifstream in(inputFile);
std::ofstream out(outputFile);
std::string buffer;
std::getline(in, buffer);
while (std::getline(in, buffer) && !buffer.empty())
out << cifra(buffer) << std::endl;
return 0;
}