Pagini recente » Cod sursa (job #2004351) | Cod sursa (job #2008335) | Cod sursa (job #545814) | Profil denisguran | Cod sursa (job #1542891)
/*
Gigel, fiind plictisit, se juca in timpul orei de matematica, desenand pe o foaie. Din pacate, profesorul l-a vazut si i-a spus ca ii pune nota 4 daca nu rezolva urmatoarea problema: pentru o valoarea N data trebuie sa determine ultima cifra a sumei 11 + 22 + ... + NN.
Cerinta
Scrieti un program care sa-l ajute pe Gigel si sa determine ultima cifra a acestei sume pentru T valori date ale lui N.
Date de intrare
Pe prima linie din fisierul cifra.in se va afla numarul T. Pe urmatoarele T linii se vor gasi valori ale lui N pentru care trebuie gasit raspunsul.
Date de iesire
Pe cele T linii ale fisierului cifra.out se vor gasi raspunsurile pentru valorile lui N date in fisierul de intrare.
Restrictii
1 ≤ T ≤ 30.000
ATENTIE! 1 ≤ N < 10100. Numerele trebuie citite ca siruri de caractere!
Se acorda punctaj pentru un test doar daca toate cele T valori din fisierul de iesire sunt corecte
Exemplu
cifra.in cifra.out
5
1
2
3
4
5
1
5
2
8
3
Explicatii
11 = 1
11 + 22 = 1 + 4 = 5
11 + 22 + 33 = 1 + 4 + 27 = 32
11 + 22 + 33 + 44 = 1 + 4 + 27 + 256 = 288
11 + 22 + 33 + 44 + 55 = 1 + 4 + 27 + 256 + 3125 = 3413
*/
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int main()
{
int i=0,n,x,k,suma;
ifstream f("cifra.in");
ofstream g("cifra.out");
f>>n;
while(i<n)
{f>>x;
k=1;
suma=0;
while(k<=x)
{suma=suma+pow(k,k);
k++;}
g<<suma%10<<endl;
i++;
}
f.close();g.close();
return 0;
}