Pagini recente » Cod sursa (job #243658) | Cod sursa (job #2157249) | Cod sursa (job #2899774) | Cod sursa (job #1823425) | Cod sursa (job #1510182)
#include <stdio.h>
#include <math.h>
#include <string.h>
int exponent(int a,int b){
if(b==1)
return a;
return ((a%10)*exponent(a,b-1))%10;
}
void vecReady(int x[]){
x[0]=1;int i;
for(i=2;i<=100;i++)
{
x[i-1]=(x[i-2]+exponent(i,i))%10;
}
}
int getLastDigit(int x[],char s[], int numberlength){
if(numberlength==1){
return x[s[0]-'0'-1];
}
return x[((s[numberlength-2]-'0')*10+s[numberlength-1]-'0'-1+100)%100];
}
int main(){
int i,t,a[100],numberLength;
char number[103];
FILE *fp=fopen("cifra.in","r");
FILE *fq=fopen("cifra.out","w");
fscanf(fp,"%d",&t);fgets(number,103,fp);
vecReady(a);
for(i=1;i<=t;i++){
fgets(number,103,fp);
numberLength=strlen(number)-1;
fprintf(fq,"%d\n",getLastDigit(a,number,numberLength));
}
fclose(fp);fclose(fq);
return 0;
}