Cod sursa(job #139430)

Utilizator hulparuadrianhulparu adrian hulparuadrian Data 20 februarie 2008 10:18:29
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
//#include<iostream>
#include<fstream.h>
  //               using namespace std;
				 ifstream f("cifra.in");
				 ofstream g("cifra.out");
unsigned long n,i;
int t,sol;

int calk_sol(unsigned long n)
{
sol=0;
for(long i=1;i<=n;i++)
{
		 if (i%10==1) sol=(sol+1)%10;
		 else if (i%10==2)
			  switch (i%4)
			  {
			  case 1: {sol=(sol+2)%10;break;}
			  case 2: {sol=(sol+4)%10;break;}
			  case 3: {sol=(sol+8)%10;break;}
			  case 0: {sol=(sol+6)%10;break;}
					 }
		 else if (i%10==3)
			  switch (i%4)
			  {
			  case 1: {sol=(sol+3)%10;break;}
			  case 2: {sol=(sol+9)%10;break;}
			  case 3: {sol=(sol+7)%10;break;}
			  case 0: {sol=(sol+1)%10;break;}
					 }
		 else if (i%10==4)
			  switch (i%2)
			  {
			  case 1: {sol=(sol+4)%10;break;}
			  case 0: {sol=(sol+6)%10;break;}
					 }
		 else if (i%10==5) sol=(sol+5)%10;
		 else if (i%10==6) sol=(sol+6)%10;
		 else if (i%10==7)
			  switch (i%4)
			  {
			  case 1: {sol=(sol+7)%10;break;}
			  case 2: {sol=(sol+9)%10;break;}
			  case 3: {sol=(sol+3)%10;break;}
			  case 0: {sol=(sol+1)%10;break;}
					 }
		 else if (i%10==8)
			  switch (i%4)
			  {
			  case 1: {sol=(sol+8)%10;break;}
			  case 2: {sol=(sol+4)%10;break;}
			  case 3: {sol=(sol+2)%10;break;}
			  case 0: {sol=(sol+6)%10;break;}
			  }
		 else if (i%10==9)
			  switch (i%2)
			  {
			  case 1:{sol=(sol+9)%10;break;}
			  case 0:{sol=(sol+1)%10;break;}
					 }}
 return sol;}

int main()
{
          f>>t;
    for(int l=1;l<=t;l++)
           { f>>n;g<<calk_sol(n)<<"\n";}
    f.close();
    g.close();
	return 0;
	}