Cod sursa(job #1192392)

Utilizator dorinmoldovanMoldovan Dorin dorinmoldovan Data 28 mai 2014 22:04:48
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.56 kb
#include "stdio.h"

int rest[100];

int main()
{
	int T, NR;

	rest[0] = 0;
	rest[1] = 1;
	rest[2] = (rest[1] + 4) % 10;
	rest[3] = (rest[2] + 7) % 10;
	rest[4] = (rest[3] + 6) % 10;
	rest[5] = (rest[4] + 5) % 10;
	rest[6] = (rest[5] + 6) % 10;
	rest[7] = (rest[6] + 3) % 10;
	rest[8] = (rest[7] + 6) % 10;
	rest[9] = (rest[8] + 9) % 10;
	rest[10] = (rest[9] + 0) % 10;
	rest[11] = (rest[10] + 1) % 10;
	rest[12] = (rest[11] + 6) % 10;
	rest[13] = (rest[12] + 3) % 10;
	rest[14] = (rest[13] + 6) % 10;
	rest[15] = (rest[14] + 5) % 10;
	rest[16] = (rest[15] + 6) % 10;
	rest[17] = (rest[16] + 7) % 10;
	rest[18] = (rest[17] + 4) % 10;
	rest[19] = (rest[18] + 9) % 10;
	rest[20] = (rest[19] + 0) % 10;

	for(int i = 21; i <= 40; i++)
		rest[i] = (rest[i - 20] + 4) % 10;

	for(int i = 41; i <= 60; i++)
		rest[i] = (rest[i - 20] + 4) % 10;

	for(int i = 61; i <= 80; i++)
		rest[i] = (rest[i - 20] + 4) % 10;

	for(int i = 81; i <= 100; i++)
		rest[i] = (rest[i - 20] + 4) % 10;

	freopen("cifra.in", "r", stdin);
	freopen("cifra.out", "w", stdout);

	char line[102];

	gets(line);
	sscanf(line, "%d", &T);

	for(int i = 0; i < T; i++)
	{
		gets(line);

		int index = 0;
		for(int j = 0; j < 102; j++)
			if(line[j] < '0' || line[j] > '9') 
			{
				index = j - 1;
				break;
			}

		NR = 0;
		// case index == 0
		if(index == 0)
		{
			NR = line[0] - 48;
		}

		// case index >= 1
		if(index >= 1)
		{
			NR = (line[index - 1] - 48) * 10 + (line[index] - 48);
		}

		printf("%d\n", rest[NR % 100]);
	}
		
	return 0;
}