Pagini recente » Monitorul de evaluare | Cod sursa (job #81183) | Cod sursa (job #2822020) | Cod sursa (job #431486) | Cod sursa (job #1720837)
#include <cstring>
#include <fstream>
using namespace std;
int ucif (int n){//returneaza ultima cifra a numarului n^n
int c, rez;
rez = 0;
c = n % 10;
switch (c) {
case 0:
rez = 0;
break;
case 1:
rez = 1;
break;
case 2:
if (n % 4 == 1)
rez = 2;
if (n % 4 == 2)
rez = 4;
if (n % 4 == 3)
rez = 8;
if (n % 4 == 0)
rez = 6;
break;
case 3:
if (n % 4 == 1)
rez = 3;
if (n % 4 == 2)
rez = 9;
if (n % 4 == 3)
rez = 7;
if (n % 4 == 0)
rez = 1;
break;
case 4:
if (n % 2 == 0)
rez = 6;
else
rez = 4;
break;
case 5:
rez = 5;
break;
case 6:
rez = 6;
break;
case 7:
if (n % 4 == 1)
rez = 7;
if (n % 4 == 2)
rez = 9;
if (n % 4 == 3)
rez = 3;
if (n % 4 == 0)
rez = 1;
break;
case 8:
if (n % 4 == 1)
rez = 8;
if (n % 4 == 2)
rez = 4;
if (n % 4 == 3)
rez = 2;
if (n % 4 == 0)
rez = 6;
break;
case 9:
if (n % 2 == 0)
rez = 1;
else
rez = 9;
break;
}
return rez;
}
int suma(int n){ // s=1^1+2^2+3^3+...+n^n
int i,s;
s=0;
for (i=1;i<=n;i++){
s = s + ucif(i);
s %= 10;
}
return s;
}
int main()
{
int i, x, t, l;
int pred[100];
string linie;
for (i=0;i<100;i++)
pred[i] = suma(i);
ifstream fin("cifra.in");
ofstream fout("cifra.out");
fin >> t;
for (i=0;i<t;i++){
fin >> linie;
l = linie.length();
if (l==1)
x = linie[0]-'0';
else
x = (linie[l-2]-'0')*10+(linie[l-1]-'0');
fout << pred[x] << endl;
}
return 0;
}