Cod sursa(job #2914845)

Utilizator alin.gabrielAlin Gabriel Arhip alin.gabriel Data 21 iulie 2022 07:33:35
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <string>
using namespace std;

int lastDigit(string n) {
    int sum = 0;
    int sp[10] = {0, 1, 4, 7, 6, 5, 6, 3, 6, 9};
    int si[10] = {0, 1, 6, 3, 6, 5, 6, 7, 4, 9};

    int last2d[2];
    if (n.size() == 2) {
        last2d[0] = n[0] - '0';
        last2d[1] = n[1] - '0';
    } else {
        last2d[0] = 0;
        last2d[1] = stoi(n);
    }

    int lastDigit = 7 * last2d[0];
    for(int i = 0; i <= last2d[1]; i++)
        if (last2d[0] % 2 == 0)
            lastDigit += sp[i];
        else 
            lastDigit += si[i];

    return lastDigit % 10;
}

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

    for (int i = 0; i < t; i++) {
        string n;
        fin >> n;
        int size = n.length();
        int lastnds;
        if (size < 2)
            lastnds = 1;
        else 
            lastnds = 2;
        string lastds = n.substr(size - lastnds);
        fout << lastDigit(lastds) << "\n";
    }

    return 0;
}