Cod sursa(job #1714325)

Utilizator enacheionutEnache Ionut enacheionut Data 7 iunie 2016 22:38:45
Problema Cifra Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.89 kb
#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;
}