Pagini recente » Cod sursa (job #3246467) | Cod sursa (job #1659849) | Cod sursa (job #1963359) | Cod sursa (job #2917469) | Cod sursa (job #454628)
Cod sursa(job #454628)
#include <iostream>
#include <fstream>
using namespace std;
#include<stdio.h>
int calcul(int n)
{
int ult = n%10;
int ret = 0;
switch(ult)
{
case 0:
ret = 0;
break;
case 1:
ret = 1;
break;
case 2:
switch (n%4)
{
case 1: ret = 2;
break;
case 2: ret = 4;
break;
case 3: ret = 8;
break;
case 0: ret = 6;
break;
}
break;
case 3:
switch (n%4)
{
case 1: ret = 3;
break;
case 2: ret = 9;
break;
case 3: ret = 7;
break;
case 0: ret = 1;
break;
}
break;
case 4:
switch (n%2)
{
case 1: ret = 4;
break;
case 0: ret =6;
break;
}
break;
case 5: ret =5;
break;
case 6: ret =6;
break;
case 7:
switch (n%4)
{
case 1: ret = 7;
break;
case 2: ret = 9;
break;
case 3: ret = 3;
break;
case 0: ret = 1;
break;
}
break;
case 8:
switch (n%4)
{
case 1: ret = 8;
break;
case 2: ret = 4;
break;
case 3: ret = 2;
break;
case 0: ret = 6;
break;
}
break;
case 9:
switch (n%2)
{
case 1: ret = 9;
break;
case 0: ret = 1;
break;
}
break;
}
return ret;
}
int ncalcul(int n)
{
int s = 0;
for(int i=1;i<=n;i++)
{
s += calcul(i);
if(s > 9)
s = s%10;
}
return s;
}
int main()
{
int n = 0, k = 0;
freopen("cifra.in","r",stdin);
freopen("cifra.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
char str[101];
scanf("%s",str);
int i1 = 0, i2 = 0, i3 = 0;
for(int j=0;j<101;j++)
{
if(str[j] == '\0') break;
if(j>1) i1 = 100 * (str[j-2] - '0');
if(j>0) i2 = 10 * (str[j-1] - '0');
i3 = str[j] - '0';
}
int nr = i1 + i2 + i3;
int x = (((nr/20)%10)*4)%10;
int y = ncalcul(nr%20);
int z = (x+y)%10;
printf("%d\n",z);
//k = ncalcul(k);
//printf("%d\n",k);
}
return 0;
}