Pagini recente » Cod sursa (job #1524003) | Rating Dinu I (Dinu2005) | Cod sursa (job #1133530) | Cod sursa (job #916628) | Cod sursa (job #1720830)
#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
#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;
int pred[100];
string linie;
for (i=0;i<100;i++)
pred[i] = suma(i);
ifstream fin("cifra.in");
ofstream fout("cifra.out");
std::getline(fin, linie);
while (std::getline(fin, linie)){
if (linie.length()>1)
linie.erase(0, linie.length()-2);
std::istringstream ss(linie);
ss >> x;
fout << pred[x % 100] << endl;
}
return 0;
}