Pagini recente » Cod sursa (job #1908591) | Cod sursa (job #1142433) | Cod sursa (job #2879168) | Cod sursa (job #1535272) | Cod sursa (job #1094007)
#include <iostream>
#include <fstream>
#include <string.h>
#define nMAX 1000000
using namespace std;
//calculez ultima cifra a numarului k^k
int ultimaCifra(int k)
{
int i;
unsigned long int p = 1;
for (i = 1; i <= k; i++)
{
p *= k;
p %= 10;
}
return p;
}
void afisare(int v[], int n)
{
int i;
for(i = 0; i < 100; i++)
cout << v[i] << " ";
}
//generez in vectorul v ultimele cifre pentru primele 100 de sume
//ultimele cifre ale sumelor se repeta din 100 in 100
void genereazaV(int v[])
{
int i, s = 0;
v[0] = 0;
for (i = 1; i < 100; i++)
{
v[i] = (v[i - 1] + ultimaCifra(i)) % 10;
}
}
int main()
{
int v[100];
ifstream f("cifra.in");
ofstream g("cifra.out");
int T, i, j, x;
char N[nMAX], c;
genereazaV(v);
f >> T;
for(i = 1; i <= T; i++)
{
f.get(c);
f.get(N, nMAX);
if(strlen(N) == 1)
x = N[strlen(N)-1] - '0';
else
x = (N[strlen(N)-1] - '0') + (N[strlen(N)-2] - '0') * 10;
g << v[x] << "\n";
}
return 0;
}