Pagini recente » Cod sursa (job #709292) | Cod sursa (job #365673) | Cod sursa (job #213935) | Cod sursa (job #313432) | Cod sursa (job #250869)
Cod sursa(job #250869)
#include<stdio.h>
#define infile "cifra.in"
#define outfile "cifra.out"
#define nmax 101
#define lmax 105
char v[lmax];
char sol[nmax];
int t;
//returneaza x^x
int x_la_x(int x)
{
int i,s=x%10;
for(i=2;i<=x;i++)
s=(s*x)%10;
return s;
}
void fai_sol(char sol[nmax], int n)
{
int i;
for(i=1;i<n;i++)
sol[i]=(sol[i-1]+x_la_x(i))%10;
}
int main()
{
int i;
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
fai_sol(sol,nmax); //facem vectorul de solutii pana la 100 (e suficient 99:P)
scanf("%d\n",&t); //citim numarul de teste
while(t--) //fiecare test in parte :P
{
for(i=0;v[i];v[i++]=0); //golim vectorul
fgets(v,lmax,stdin); //citim numarul
for(i=lmax-1;!v[i]||v[i]=='\n';i--); //trebuie sa aflam ultima pozitie din vector....
if(!i) printf("%d\n",sol[v[0]-'0']); //numarul are o singura cifra
else printf("%d\n",sol[(v[i]-48)+(v[i-1]-48)*10]);
}
fclose(stdin);
fclose(stdout);
return 0;
}