Cod sursa(job #58463)

Utilizator alex_aurelia_31Neamtu Alexandra alex_aurelia_31 Data 5 mai 2007 21:57:29
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<stdio.h>
FILE *f,*g;
int t;
unsigned long int n;
int ultima(int baza, int puterea)
{
if (baza==1 || baza==6 || baza==0 || baza==5) return baza;
if (puterea==0) return 1;
if (baza==2)
 {
   if (puterea % 4==0) return 6;
   if (puterea % 4==1) return 2;
   if (puterea % 4==2) return 4;
   if (puterea % 4==3) return 8;
 }
if (baza==3)
 {
   if (puterea % 4==0) return 1;
   if (puterea % 4==1) return 3;
   if (puterea % 4==2) return 9;
   if (puterea % 4==3) return 7;
 }
if (baza==4)
 {
   if (puterea % 2==0) return 6;
   if (puterea % 2==1) return 4;
  }
if (baza==7)
 {
   if (puterea % 4==0) return 1;
   if (puterea % 4==1) return 7;
   if (puterea % 4==2) return 9;
   if (puterea % 4==3) return 3;
 }
if (baza==8)
 {
   if (puterea % 4==0) return 6;
   if (puterea % 4==1) return 8;
   if (puterea % 4==2) return 4;
   if (puterea % 4==3) return 2;
 }
if (baza==9)
 {
   if (puterea % 2==0) return 1;
   if (puterea % 2==1) return 9;

 }
}




int main()

{

f=fopen("cifra.in","r");
g=fopen("cifra.out","w");
fscanf(f,"%d\n",&t);
int j,u,i;
for(j=1;j<=t;j++)
{
fscanf(f,"%ld\n",&n);
u=0;
for(i=1;i<=n;i++)
{
 if (i<10) u=u+ultima(i,i);
  else u=u+ultima(i%10,i);
 if (u>10) u=u%10;
}
fprintf(g,"%d\n",u);

}
return 0;
}