Cod sursa(job #462002)

Utilizator remusmpRemus MP remusmp Data 9 iunie 2010 15:26:37
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/*int ultima[10][4] = {
	{0,0,0,0},
	{1,1,1,1},
	{6,2,4,8},
	{1,3,9,7},
	{6,4,6,4},
	{5,5,5,5},
	{6,6,6,6},
	{1,7,9,3},
	{6,8,4,2},
	{1,9,1,9}
};*/

int last[100] = {0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4,5,9,6,2,7,3,6,2,1,1,2,8,1,7,2,8,5,9,8,8,
9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,
7,1,8,4,9,5,8,4,3,3,4,0,3,9,4,0,7,1,0};

int main()
{
	/*for (int i=1; i < 10; i++)
	{
		int nr = i;
		printf("Nr: %d\n", nr);
		for (int j=1; j < 10; j++)
		{
			printf("%d %d\n", j, nr%10);
			nr *= i;
		}
	}

	int sum = 0;
	for (int i=1; i<=100; i++)
	{
		sum += ultima[i%10][i%4];	
		sum %= 10;
		// printf("n=%d, %d\n", i, sum);
		printf("%d,", sum);
	}*/

	FILE* fin = fopen("cifra.in", "r");
	FILE* fout = fopen("cifra.out", "w");
	int T;
	fscanf(fin, "%d", &T);

	char N[101];
	for (int i=0; i < T; i++)
	{
		fscanf(fin,"%s", N);

		int len = strlen(N);
		int n = N[len-1] - '0';
		if (len > 1)
			n = 10*N[len-2] + N[len-1] - 2*'0';

		fprintf(fout,"%d\n", last[n]);
	}


	return 0;
}