Cod sursa(job #1856387)

Utilizator gavrisraulRaul Gavris gavrisraul Data 24 ianuarie 2017 20:04:45
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
char n[110];
int a[110],t;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
class preprocces{
    public:
    int putere(int k){
        int i,sol=1;
        for (i=1; i<=k; i++){

            sol=sol*k;
            sol=sol%10;
        }
        return sol;
    }
    void calcul(){
        int i;
        for (i=1; i<=100; ++i)
        {

            a[i]=a[i-1]+putere(i);
            a[i]=a[i]%10;
        }
    }
};
int main(){
    preprocces execute;
    execute.calcul();
    fin>>t;
    for(int i=1;i<=t;i++){
         fin>>n;
         int l=strlen(n);
         char last2[110];
         if(l>2)
            strcpy(last2,n+l-2);
         else
            strcpy(last2,n);
         int ultimacif=atoi(last2);
         fout<<a[ultimacif]<<"\n";
    }
}

/*
Brute 1^1+2^2+3^3+...+n^n
#include<iostream>
using namespace std;
int main() {
    int n,m=9999999,i,j,sum,t;
    cin>>n;
    sum=0;
    for(i=1;i<=n;i++) {
        t=1;
        for(j=1;j<=i;j++)
            t=((long long)t*i)%m;
        sum=(sum+t)%m;
    }
    cout<<sum%10;

}
*/
/*
int a[] = {0,1,5,2,8,3,9,2,8,7
           7,8,4,7,3,8,4,1,5,4
           4,5,9,6,2,7,3,6,2,1
           1,2,8,1,7,2,8,5,9,8
           8,9,3,0,6,1,7,0,6,5
           5,6,2,5,1,6,2,9,3,2
           2,3,7,4,0,5,1,4,0,9
           9,0,6,9,5,0,6,3,7,6
           6,7,1,8,4,9,5,8,4,3
           3,4,0,3,9,4,0,7,1,0
           ,0};
*/