Pagini recente » Cod sursa (job #1058535) | Cod sursa (job #1106015) | Monitorul de evaluare | Cod sursa (job #2568237) | Cod sursa (job #1727294)
#include <fstream>
#include <cstring>
using namespace std;
int numar(char s[])
{
int lungime = strlen(s);
if (lungime == 1)
return s[lungime-1]-'0';
else
return ((s[lungime-2]-'0')* 10 + s[lungime-1]-'0');
}
int cifra(int nr1, int nr2)
{
int i,inm = 1;
nr1 = nr1%10;
nr2 = nr2%4; // la cifra unitatilor pot fi maxim 4 numere diferite pentru orice valoare
if (nr2 == 0)
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;
ifstream f("cifra.in");
ofstream g("cifra.out");
f>>t;
for(i = 1; i <= t; i++)
{
char s[101];
f>>s;
nr = numar(s);
g<<rezultat(nr)<<endl;
}
f.close();
g.close();
return 0;
}