Pagini recente » Cod sursa (job #1241745) | Cod sursa (job #2425105) | Cod sursa (job #1246502) | Statistici Ancuta Ioan (eoancuta) | Cod sursa (job #830840)
Cod sursa(job #830840)
#include <iostream>
#include <fstream>
#include <string>
#include <math.h>
using namespace std;
string nr;
int T;
ifstream in("cifra.in");
ofstream out("cifra.out");
int for2[] = {2,4,8,6};
int for3[] = {3,9,7,1};
int for4[] = {4,6};
int for7[] = {7,9,3,1};
int for8[] = {8,4,2,6};
int for9[] = {9,1};
int main()
{
in>>T;
while(T--)
{
in>>nr;
int impNr = 0;
int impNrDigits = 0;
int pz = nr.size()-1;
while(pz>=0 && impNrDigits<2)
{
impNr+= (nr[pz]-'0') * pow(10,impNrDigits);
++impNrDigits;
pz--;
}
int lastDigit = 0;
for(int i=0;i<=impNr;++i)
{
switch(i%10)
{
case 0:
{
lastDigit+=0;
lastDigit%=10;
break;
}
case 1:
{
lastDigit+=1;
lastDigit%=10;
break;
}
case 2:
{
if(i<5)
{
lastDigit+=for2[i-1];
lastDigit%=10;
break;
}
lastDigit+=for2[(i-1)%4];
lastDigit%=10;
break;
}
case 3:
{
if(i<5)
{
lastDigit+=for3[i-1];
lastDigit%=10;
break;
}
lastDigit+=for3[(i-1)%4];
lastDigit%=10;
break;
}
case 4:
{
lastDigit+=for4[(i-1)%2];
lastDigit%=10;
//cout<<i<<" "<<for4[(i-1)%2]<<'\n';
break;
}
case 5:
{
lastDigit+=5;
lastDigit%=10;
break;
}
case 6:
{
lastDigit+=6;
lastDigit%=10;
break;
}
case 7:
{
lastDigit+=for7[(i-1)%4];
lastDigit%=10;
break;
}
case 8:
{
lastDigit+=for8[(i-1)%4];
lastDigit%=10;
break;
}
case 9:
{
lastDigit+=for9[(i-1)%2];
lastDigit%=10;
break;
}
}
}
out<<lastDigit<<'\n';
}
in.close();
out.close();
return 0;
}