Pagini recente » Cod sursa (job #2431806) | Cod sursa (job #12459) | Cod sursa (job #1583712) | Cod sursa (job #358091) | Cod sursa (job #155636)
Cod sursa(job #155636)
#include<string.h>
#include<fstream>
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++)
{ temp=i/4;
ir=i-4*temp;
if(!ir) 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;
}