Pagini recente » Cod sursa (job #1715854) | Cod sursa (job #2606506) | Cod sursa (job #2150332) | Cod sursa (job #2170010) | Cod sursa (job #673646)
Cod sursa(job #673646)
// Autor Sebastian
// Nume program Cifre
// Licenta GPL
// Pentru o valoarea N data trebuie sa determine ultima cifra a sumei 1^1 + 2^2 + ... + N^N.
// Sa se determine ultima cifra a acestei sume pentru T valori date ale lui N.
// Pe cele T linii ale fisierului cifra.out se vor gasi raspunsurile pentru valorile lui N date in fisierul de intrare.
#include <cstdio>
FILE* in = fopen("cifra.in","r");
FILE* out = fopen("cifra.out","w");
int cf(int x) {
if(x%10==0 || x%10==1 || x%10==5 || x%10==6 || x%10==9)
return x;
if(x%10==4 || x%10==8)
return 6;
if(x%10==2)
return 4;
if(x%10==3)
return 7;
if(x%10==7)
return 3;
return 0;
}
int s(int x) {
int sum = 0;
for(int i = 1; i<=x; i++)
sum+=cf(i);
return sum%10;
}
int main() {
int t;
fscanf(in,"%d",&t);
int *v = new int[t];
for(int i = 0; i<t; i++)
fscanf(in,"%d",&v[i]);
for(int i = 0; i<t; i++)
fprintf(out,"%d ",s(v[i]));
delete[] v;
return 0;
}