Cod sursa(job #673646)

Utilizator sebi95qwerty sebi95 Data 4 februarie 2012 18:48:17
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
// 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;
}