Cod sursa(job #1694226)

Utilizator Alexandru_DanielAlexandru Alexandru_Daniel Data 24 aprilie 2016 22:33:50
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>

using namespace std;

static int table[] = {
    0, 0, 0, 0, 1, 1, 1, 1, 6, 2, 4, 8, 1, 3, 9, 7, 6, 4, 6, 4,
    5, 5, 5, 5, 6, 6, 6, 6, 1, 7, 9, 3, 6, 8, 4, 2, 1, 9, 1, 9
};

inline int unit_digit(int lastDigit, long long exponent){
    return table[(lastDigit<<2)+(exponent&3)];
}

int main(){

    string number;
    int howMany;
    ifstream in("cifra.in");
    ofstream out("cifra.out");
    in>>howMany;

    for(int i=-1;++i<howMany;){
       int sumOfTheLine=0;
       in>>number;

        int lastDigit=number[number.size()-1]-'0';
        int base = atoi(number.c_str());

        for(long long k=1;k<=base;k++){
        sumOfTheLine+=unit_digit(k,k);
        sumOfTheLine%=10;
        }
        out<<sumOfTheLine<<endl;

    }



    return 0;
}