Cod sursa(job #1112872)

Utilizator vlad.rusu11Rusu Vlad vlad.rusu11 Data 20 februarie 2014 09:11:44
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.8 kb
#include <fstream>
#include <cstring>
using namespace std;

short ultCifra(short u)
{
    short ultimaCifra;

    ultimaCifra = u % 10;

    if((ultimaCifra % 5 == 2) || (ultimaCifra % 5 == 3))
    {
        switch(u)
        {
            case 2: {
                        if(u % 4)
                            return 4;
                        else
                            return 6;
                    }
            case 3: {
                        if(u % 4 == 1)
                            return 3;
                        else
                            return 7;
                    }
            case 7: {
                        if(u % 4 == 1)
                            return 7;
                        else
                            return 3;
                    }
            case 8: {
                        if(u % 4)
                            return 4;
                        else
                            return 6;
                    }
        }
    }
    else
        if(ultimaCifra == 4)
            return 6;
        else
            return ultimaCifra;
    return 0;
}

int main()
{
    ifstream fin("cifra.in");
    ofstream fout("cifra.out");

    int T, i;
    short ultDoua, cifra, x;
    char sir[101];

    fin >> T;
    fin.get();

    for(i=1 ; i<=T ; ++i)
    {
        fin.get(sir,101);
        fin.get();

        x = 0;
        if(strlen(sir) > 1)
            x = (int)(*(sir + strlen(sir) - 2) - '0');
        ultDoua = x;
        x = (int)(*(sir + strlen(sir) - 1) - '0');
        ultDoua = ultDoua*10 + x;

        cifra = 0;
        for(short j=1 ; j<=ultDoua ; ++j)
            cifra = (cifra + ultCifra(j)) % 10;

        fout << cifra << '\n';
    }

    fin.close();
    fout.close();
    return 0;
}