Cod sursa(job #1559418)

Utilizator daniel.sanduSandu Daniel daniel.sandu Data 30 decembrie 2015 18:50:42
Problema Cifra Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <iostream>
#include <cstring>

const int partialSum[] = {
	0, 1, 5, 2, 8, 3, 9, 2, 8, 7, 7, 8, 4, 7, 3, 8, 4, 1, 5, 4
};

inline int cifra(int n) {
	return (partialSum[n % 20] + 4 * (((((n - (n % 20)) / 10) % 5) * 3) % 5)) % 10;
}

int main() {
	char const * const inputFile = "cifra.in",
						 * const outputFile = "cifra.out";
	std::ifstream in(inputFile);
	std::ofstream out(outputFile);
	
	int x, a1 = 0, a0 = 0;
	in >> x;
	while (in) {
		x = in.get();
		if ('0' <= x && x <= '9') {
			a1 = a0;
			a0 = x - '0';
		} else if (a0 || a1) {
			out << cifra(a0 + a1 * 10) << std::endl;
			a1 = 0;
			a0 = 0;
		}
	}
	return 0;
}