Pagini recente » Cod sursa (job #2112584) | Cod sursa (job #2422772) | Cod sursa (job #2843185) | Cod sursa (job #1740899) | Cod sursa (job #1727295)
#include <fstream>
#include <cstring>
using namespace std;
int numar(char *s)
{
int x,lungime = strlen(s);
x = s[lungime-1] - '0';
if (lungime > 1)
x += 10*(s[lungime-2] - '0');
return x;
}
int cifra(int nr1, int nr2)
{
int i,inm = 1;
nr1 %= 10;
if (nr2 == 0)
nr2 %= 4; // la cifra unitatilor pot fi maxim 4 numere diferite pentru orice valoare
nr2 = 4;
for(i = 1; i <= nr2; i++)
inm *= nr1;
return inm%10;
}
int rezultat(int nr)
{
int i,suma = 0;
for(i = 1; i <= nr; i++)
suma += cifra(i,i);
return suma%10;
}
int main()
{
int t,i,nr;
char s[101];
ifstream f("cifra.in");
ofstream g("cifra.out");
f>>t;
for(i = 1; i <= t; i++)
{
f>>s;
nr = numar(s);
g<<rezultat(nr)<<endl;
}
f.close();
g.close();
return 0;
}