Cod sursa(job #136642)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 15 februarie 2008 18:40:44
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.83 kb
#include <stdio.h>
#include <math.h>

int putere(int pn);

FILE* f;
FILE* s;

int t;
int n;

int main()
{
	f=fopen ("cifra.in","r");
	s=fopen ("cifra.out","w");

	fscanf (f,"%d\n",&t);

	for (int i=0;i<t;i++)
	   {
		   fscanf (f,"%d\n",&n);

		   n=n%100;

		   int suma=0;
		   for (int j=1;j<=n;j++)
				suma+=putere(j);

		  fprintf (s,"%d\n",suma%10);
	   }

	   fclose (f);
	   fclose (s);

	  return 0;
  }

int putere(int pn)
{
	int numar=pn;
	int ultima=numar%10;
	int rezultat;

	switch (ultima)
	{
		case 0: rezultat=0;
				break;

		case 1: rezultat=1;
				break;

		case 2: switch(numar%4)
				{
					case 0: rezultat=6;
							break;
					case 1:	rezultat=2;
							break;
					case 2: rezultat=4;
							break;
					case 3: rezultat=8;
							break;
				}
				break;

		case 3: switch(numar%4)
				{
					case 0: rezultat=1;
							break;
					case 1:	rezultat=3;
							break;
					case 2: rezultat=9;
							break;
					case 3: rezultat=7;
							break;
				}
				break;

		case 4: switch(numar%2)
				{
					case 0: rezultat=6;
							break;
					case 1:	rezultat=4;
							break;
				}
				break;

		case 5: rezultat=5;
				break;

		case 6: rezultat=6;
				break;

		case 7: switch(numar%4)
				{
					case 0: rezultat=1;
							break;
					case 1:	rezultat=7;
							break;
					case 2: rezultat=9;
							break;
					case 3: rezultat=3;
							break;
				}
				break;

		case 8: switch(numar%4)
				{
					case 0: rezultat=6;
							break;
					case 1:	rezultat=8;
							break;
					case 2: rezultat=4;
							break;
					case 3: rezultat=2;
							break;
				}
				break;

		case 9: switch(numar%2)
				{
					case 0: rezultat=1;
							break;
					case 1: rezultat=9;
							break;
				}
				break;
	}

	return rezultat;
}