Cod sursa(job #657493)
Utilizator | Data | 6 ianuarie 2012 17:38:53 | |
---|---|---|---|
Problema | Cifra | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.3 kb |
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
char ni[200];
int scadere(char);
int main()
{
int j,i,t,e,aux,s,n[200],p;
char a='0';
fstream f("cifra.in",ios::in);
fstream g("cifra.out",ios::out);
f>>t;
for(i=1;i<=t;i++)
{
s=0;
f>>ni;
j=strlen(ni)-1;;
for(e=0;e<=j;e++)
{
n[e]=int(ni[e])-int(a);
}
do
{
aux=n[j];
if(j>0)
e=n[j-1]*10+n[j];
else
e=n[j];
if(aux==2)
{
if(e%4==1)
s+=2;
else
if(e%4==2)
s+=4;
else
if(e%4==3)
s+=8;
else
s+=6;
}
else
if(aux==3)
{
if(e%4==1)
s+=3;
else
if(e%4==2)
s+=9;
else
if(e%4==3)
s+=7;
else
s+=1;
}
else
if(aux==7)
{
if(e%4==1)
s+=7;
else
if(e%4==2)
s+=9;
else
if(e%4==3)
s+=3;
else
s+=1;
}
else
if(aux==8)
{
if(e%4==1)
s+=8;
else
if(e%4==2)
s+=4;
else
if(e%4==3)
s+=2;
else
s+=6;
}
else
if(aux==9)
{
if(e%4==1)
s+=9;
else
s+=1;
}
else
if(aux==4)
{
if(e%2==1)
s+=4;
else
s+=6;
}
else
{
s+=aux;
}
p=j;
do
{
n[p]--;
p--;
}
while(n[j]==9);
for(p=1;p<j;p++)
if(n[p]==0)
{
n[p]=n[p+1];
j--;
}
}
while(n[0]>0);
g<<s%10<<endl;
}
f.close();
g.close();
}