Pagini recente » Cod sursa (job #461804) | Cod sursa (job #2706649) | Cod sursa (job #1450652) | Cod sursa (job #2908478) | Cod sursa (job #733388)
Cod sursa(job #733388)
#include<stdio.h>
#include<math.h>
#include<string.h>
FILE *fin=fopen("cifra.in.txt", "r");
FILE *fout=fopen("cifra.out.txt", "w");
//1.vector v cu valori deja calculate;
//int v[]={0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4};
int v[100]; //vector v gol;
char x[102];
int main()
{
int i,n,t,k,y,j;
k=0;
//calculam valorile vectorului v - resulting same as v i=1...99 pentru ca ultimele cifre fiecarui calcul se repeta din 100 in 100
//odata ce avem vectorul celor 100 posibilitati, problema devine usoara
for (i=1; i<=99; i++)
{
y=1;
for (j=1; j<=i; j++)
{
y*=i;
y%=10;
}
k+=y;
v[i]=k%10;
k%=10;
}
//---
fscanf(fin, "%d", &t);
for (i=1; i<=t; i++)
{
k=0;
fscanf(fin,"%s", x);
n=strlen(x);
if (n>=2)
k=((x[n-2])-'0')*10+(x[n-1])-'0'; //k tine doar ultimele 2 cifre
else
k=x[0]-'0'; // caz ca are doar o cifra, o pastram pe aia
fprintf(fout,"%d\n", v[k]);
}
return 0;
}