Cod sursa(job #810197)

Utilizator DxH5dIMHNSoucup Nicolae Silviu DxH5dIMHN Data 9 noiembrie 2012 21:08:11
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <cstring>

using namespace std;

int pow_mod(int baz, int exp)
{
	long long result = 1, m = baz;
	while (exp)
	{
		if (exp&1)
			result = (result * m) % 10;
		exp /= 2;
		m = (m * m) % 10;
	}
	return (int) result;
}

int main ()
{
	int i, lg, T, suma=0, sablon[100];
	char N[101];

	ifstream infile;
	ofstream outfile;
	infile.open("cifra.in");
	outfile.open("cifra.out");
    sablon[0] = 0;
	for (i=1; i<100; ++i)
	{
		suma = (pow_mod(i, i) + suma) % 10;
		sablon[i] = suma;
	}

	infile >> T;
	infile.get();

	while (T--)
	{
		infile.getline(N,101);
		lg = strlen(N);
		if (lg!=1)
		{
			outfile << sablon[(N[lg-2]-'0')*10+(N[lg-1]-'0')] << char (0x0A);
		}
		else
		{
			outfile << sablon[N[0]-'0'] << char (0x0A);
		}
	}
	return 0;
}