Cod sursa(job #574282)

Utilizator maritimCristian Lambru maritim Data 6 aprilie 2011 23:42:39
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
#include<string.h>

int N;

int cifra(int a)
{
	int nr = 0;
	if(a >= 1)
		nr += 1;
	if(a >= 2)
		nr += 4;
	if (a>=3)
		nr += 7;
	if (a>=4)
		nr += 6;
	if(a>=5)
		nr += 5;
	if(a>=6)
		nr += 6;
	if(a>=7)
		nr += 3;
	if(a>=8)
		nr += 6;
	if(a>=9)
		nr += 9;
	if(a>=11)
		nr += 1;
	if(a>=12)
		nr+= 6;
	if(a>=13)
		nr += 3;
	if(a>=14)
		nr += 6;
	if(a>=15)
		nr += 5;
	if(a>=16)
		nr += 6;
	if(a>=17)
		nr += 7;
	if(a>=18)
		nr += 4;
	if(a>=19)
		nr += 9;
	return nr%10;
}

void citire(void)
{
	char a[100];
	int nr;
	int numar;
	FILE *f = fopen("cifra.in","r");
	FILE *g = fopen("cifra.out","w");
	
	fscanf(f,"%d ",&N);
	for(int i=1;i<=N;i++)
	{
		fscanf(f,"%s",&a);
		nr = strlen(a);
		if(nr == 1)
			fprintf(g,"%d\n",cifra(a[nr-1] - '0'));
		else
		{
			numar = (a[nr-2] - '0')*10 + a[nr-1] - '0';
			numar %= 20;
			nr = a[nr-2]-'0';
			nr = (nr/2)*4;
			fprintf(g,"%d\n",(cifra(numar)+nr)%10);
		}
	}
	
	fclose(g);
	fclose(f);
}

int main()
{
	citire();
	return 0;
}