Cod sursa(job #58470)

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




int main()

{
f=fopen("cifra.in","r");
g=fopen("cifra.out","w");
fscanf(f,"%d\n",&t);
int i,u,j;

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%4);
 if (u>10) u=u%10;
}
fprintf(g,"%d\n",u);

}
fcloseall();
return 0;
}