Pagini recente » Cod sursa (job #728903) | Cod sursa (job #2966111) | Cod sursa (job #3165713) | Cod sursa (job #1502253) | Cod sursa (job #760709)
Cod sursa(job #760709)
#include <fstream>
#include <cstring>
#include <stdlib.h>
#define MAX 105
using namespace std;
int last[MAX], n;
char sir[MAX];
int lastDigit(int nr)
{
switch(nr % 10)
{
case 0: return 0;
case 1: return 1;
case 2: switch(nr % 4) {case 0: return 6; case 1: return 2; case 2: return 4; case 3: return 8;}
case 3: switch(nr % 4) {case 0: return 1; case 1: return 3; case 2: return 9; case 3: return 7;}
case 4: switch(nr % 2) {case 0: return 6; case 1: return 4;}
case 5: return 5;
case 6: return 6;
case 7: switch(nr % 4) {case 0: return 1; case 1: return 7; case 2: return 9; case 3: return 3;}
case 8: switch(nr % 4) {case 0: return 6; case 1: return 8; case 2: return 4; case 3: return 2;}
case 9: switch(nr % 2) {case 0: return 1; case 1: return 9;}
}
}
void preprocess()
{
last[0] = 0;
for(int i = 1; i <= 100; i++)
last[i] = (last[i - 1] + lastDigit(i)) % 10;
}
int getLastDigits(char* sir)
{
int lgt = strlen(sir);
if(lgt <= 2) return atoi(sir);
else return ((sir[lgt - 2] - '0') * 10 + (sir[lgt - 1] - '0'));
}
int main()
{
ifstream in("cifra.in");
ofstream out("cifra.out");
preprocess();
in>>n; in.get();
while(n--)
{
in.getline(sir, MAX);
out<<last[getLastDigits(sir)]<<'\n';
}
in.close();
out.close();
return 0;
}