Pagini recente » Cod sursa (job #1470546) | er | Cod sursa (job #672063) | Cod sursa (job #296772) | Cod sursa (job #710974)
Cod sursa(job #710974)
#include "stdio.h"
#include "string.h"
int pow2(int a,int b)
{
int i,putere=a;
for (i=2;i<=b;i++)
putere=putere*a;
return putere;
}
int det_numar(char numar[101])
{
int baza,exponent,lungime;
lungime=strlen(numar);
if (lungime>1)
{
baza=numar[lungime-1]-'0';
exponent=(numar[lungime-2]-'0')*10+baza;
return exponent;
} else
{
baza=numar[lungime-1]-'0';
return baza;
}
}
int ultima_cifra(int numar)
{
int rest,baza=numar%10;
switch(baza)
{
case 1: return 1;
case 2: if (numar%4!=0) return pow2(2,numar%4)%10; else return 6;
case 3: return pow2(3,numar%4)%10;
case 4: if (numar%2==0) return 6; else return 4;
case 5: return 5;
case 6: return 6;
case 7: if (numar%4!=0) return pow2(7,numar%4)%10; else return 1;
case 8: if (numar%4!=0) return pow2(8,numar%4)%10; else return 6;
case 9: if (numar%2==0) return 1; else return 9;
case 0: return 0;
}
}
int main()
{
FILE *f,*g;
int t,suma=0,nr,i;
char numar[111];
f=fopen("cifra.in","r");
g=fopen("cifra.out","w");
//Citim pe T;
fscanf(f,"%d",&t);
for (i=0;i<t;i++)
{
//Citim cele N numere , ca sir de caractere
fscanf(f,"%s",&numar);
nr=ultima_cifra(det_numar(numar));
suma=(suma+nr)%10;
fprintf(g,"%d\n",suma);
}
fclose(g);
return 0;
}