Pagini recente » Cod sursa (job #89530) | Cod sursa (job #2846768) | Cod sursa (job #1762293) | Cod sursa (job #498971) | Cod sursa (job #3141374)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
int a[202],na,r,S10,T;
char s[202];
int u(int c)
{
int r=c%4,p=1;
if(r==0)
{
r=4;
}
for(int i=1; i<=r; i++)
{
p*=c;
}
return p%10;
}
int suma(int k)
{
int s=0;
for(int i=1; i<=k; i++)
{
s=s+u(i);
}
return s%10;
}
void produs_mare_mic(int a[], int& na, int v)
{
int t=0;
for(int i=0; i<=na-1; i++)
{
t=t+a[i]*v;
a[i]=t%10;
t=t/10;
}
while(t>0)
{
a[na]=t%10;
na++;
t=t/10;
}
}
void suma_mare_mic(int a[], int& na, int v)
{
int t=v;
for(int i=0; i<=na-1; i++)
{
t=t+a[i];
a[i]=t%10;
t=t/10;
}
while(t>0)
{
a[na]=t%10;
na++;
t=t/10;
}
}
int main()
{
fin>>T;
for(int t=1; t<=T; t++)
{
fin>>s;
na=strlen(s);
if(na==1)
{
r=s[0]-'0';
fout<<suma(r)<<"\n";
continue;
}
r=s[na-1]-'0';
for(int i=0; i<=na-2; i++)
{
a[na-i-2]=s[i]-'0';
}
na--;
S10=suma(10);
produs_mare_mic(a,na,S10);
suma_mare_mic(a,na,suma(r));
fout<<a[0]<<"\n";
}
fin.close();
fout.close();
return 0;
}