Pagini recente » Cod sursa (job #424310) | Cod sursa (job #390684) | Cod sursa (job #2125346) | Cod sursa (job #446438) | Cod sursa (job #155606)
Cod sursa(job #155606)
#include<string.h>
#include<fstream.h>
//using namespace std;
int t,n,uc=0;
int calculat[100]={-1};
ifstream fin("cifra.in");
ofstream fout("cifra.out");
void citeste()
{ char c[100]={0};
int count=0;
fin.get(c,100,'\n');
fin.get();
count=strlen(c);
switch (count)
{ case 1: {n=c[0]-'0';break;}
case 2: {n=10*(c[0]-'0')+c[1]-'0';break;}
default: n=10*(c[count-2]-'0')+c[count-1]-'0';
}
}
void scrie()
{
fout<<uc<<endl;
}
void rezolva()
{ int i,j;
int ir;
int temp;
fin>>t;
fin.get();
while(t--)
{ citeste();
if(calculat[n]==-1)
{ uc=0;
for(i=1;i<=n;i++)
{ if(i>4) ir=i%4; else ir=i;
if(i%4==0) ir=4;
temp=i;
for(j=1;j<ir;j++)
{ temp*=ir;
temp%=10;
}
uc+=temp;
uc%=10;
}
calculat[n]=uc;
} else uc=calculat[n];
scrie();
}
}
int main()
{
for(int i=0;i<100;i++) calculat[i]=-1;
rezolva();
fin.close(); fout.close();
return 0;
}