Cod sursa(job #1493818)

Utilizator CollermanAndrei Amariei Collerman Data 29 septembrie 2015 22:22:27
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <cstring>
using namespace std;
ofstream fout("cifra.out");
ifstream fin("cifra.in");

int n;
char nr[30005][105];
int rez_par[] = {1, 4, 7, 6, 5, 6, 3, 6, 9};
int rez_impar[] = {1, 6, 3, 6, 5, 6, 7, 4, 9};

int main()
{
    fin >> n;
    for(int i=1; i<=n; i++)
    {
        int produs = 0, factor = 0, suma = 0;

        fin >> nr[i];

        produs = (nr[i][strlen(nr[i]) - 2] - '0') * 7 % 10;
        factor = (nr[i][strlen(nr[i]) - 1] - '0');

        if(strlen(nr[i]) == 1) {
            for(int j=0; j<nr[i][0] - '0'; j++)
                suma += rez_par[j], suma %= 10;
            fout << suma << '\n';
        }

        else {
            for(int j=0; j<factor; j++)
                if(produs & 1)
                    suma += rez_impar[j], suma %= 10;
                else
                    suma += rez_par[j], suma %= 10;
            fout << (produs + suma) % 10 << '\n';
        }

        suma = produs = factor = 0;
    }
    return 0;
}