Cod sursa(job #1727290)

Utilizator petrooPetru G petroo Data 10 iulie 2016 14:26:53
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <cstring>
#include <iostream>
using namespace std;
int numar(char s[])
{
    int lungime = strlen(s);
    if (lungime == 1)
        return s[lungime-1]-'0';
    else
        return ((s[lungime-2]-'0')* 10 + s[lungime-1]-'0');
}
int cifra(int nr)
{
    int r_10,r_4,i,inm = 1;
    r_10 = nr%10;
    r_4 = nr%4; // la cifra unitatilor pot fi maxim 4 numere diferite pentru orice valoare
    if (r_4 == 0)
        r_4 = 4;
    for(i = 1; i <= r_4; i++)
        inm *= r_10;

    return inm%10;
}

int rezultat(int nr)
{
    int i,suma = 0;
    for(i = 1; i <= nr; i++)
        suma += cifra(i);
    return suma%10;
}

int main()
{
    int t,i,nr;
    ifstream f("cifra.in");
    ofstream g("cifra.out");
    f>>t;
    for(i = 1; i <= t; i++)
    {
        char s[101];
        f>>s;
        nr = numar(s);
        g<<rezultat(nr)<<endl;
    }
    f.close(),g.close();
    return 0;
}