Cod sursa(job #2213368)
Utilizator | Data | 16 iunie 2018 12:48:53 | |
---|---|---|---|
Problema | Cifra | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<fstream>
#include<cstring>
using namespace std;
ifstream in1("cifra.in"), in2("cifra2.in");
ofstream out1("cifra.out"), out2("cifra2.out");
int s[105],T,n;
char N[105];
int Pow(int b,int e)
{
int r=1;
while(e>1)
{
if(e%2==1) r=r*b;
b=b*b; e/=2;
}
return r*b;
}
int main()
{
for(int i=1;i<=99;i++)
s[i]=(s[i-1]+Pow(i%10,(i%100-1)%4+1))%10;
in1>>T;
while(T--)
{
in1>>N;
if(N[1]==0) n=N[0]-'0';
else n=(N[strlen(N)-2]-'0')*10+N[strlen(N)-1]-'0';
out1<<s[n%100]<<'\n';
}
}