Cod sursa(job #1518967)

Utilizator Burbon13Burbon13 Burbon13 Data 6 noiembrie 2015 16:57:09
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <cstdio>
#include <cstring>
using namespace std;

int n,v[104];
char s[104];

int get_last_digit(int num, int pow){
    if(num == 0 || num == 1 || num == 5 || num == 6)
        return num;
    if(num == 4 || num == 9)
        if(pow  % 2 == 1)
            return num;
        else
            return ((num*num)%10);
    if(pow % 4 == 1)
        return num;
    if(pow % 4 == 2)
        return (num*num)%10;
    if(pow % 4 == 3)
        return (num*num*num)%10;
    return (num*num*num*num)%10;
}

int char_to_int(char c){
    return (int)c - 48;
}

int main(){
    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);

    v[1] = 1;
    int p;
    for(int i = 2; i <= 99; ++i)
        v[i] = (v[i-1] + get_last_digit(i%10,i))%10;

    scanf("%d", &n);
    for(int i = 1; i <= n; ++i){
        scanf("%s", s);
        if(strlen(s) == 1)
            printf("%d\n", v[char_to_int(s[0])]);
        else
            printf("%d\n", v[char_to_int(s[strlen(s)-2])*10+char_to_int(s[strlen(s)-1])]);
    }
    return 0;
}