Cod sursa(job #1727305)

Utilizator petrooPetru G petroo Data 10 iulie 2016 14:52:24
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <string.h>
int numar(char *s)
{
    int x,lungime = strlen(s);
    x = s[lungime-1] - '0';
    if (lungime > 1)
        x += 10*(s[lungime-2] - '0');
    return x;
}
int cifra(int nr1, int nr2)
{
    int i,inm = 1;
    nr1 %= 10;
    nr2 %= 4;
    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;
    char s[101];
    FILE *in=fopen("cifra.in","r"),*out=fopen("cifra.out","w");
    fscanf(in,"%d",&t);
    for(i = 1; i <= t; i++)
    {
        fscanf(in,"%s",s);
        nr = numar(s);
        fprintf(out,"%d\n",rezultat(nr));
    }
    fclose(in);
    fclose(out);
    return 0;
}