Cod sursa(job #2599952)

Utilizator AswVwsACamburu Luca AswVwsA Data 11 aprilie 2020 20:43:26
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include  <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
ifstream in("cifra.in");
ofstream out("cifra.out");
int v[]= {0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4,5,9,6,2,7,
          3,6,2,1,1,2,8,1,7,2,8,5,9,8,8,9,3,0,6,1,7,0,6,5,5,
          6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,
          6,3,7,6,6,7,1,8,4,9,5,8,4,3,3,4,0,3,9,4,0,7,1,0,0,
         };
char s[103];
/*int u(int nr, int pwr){
nr%=10;
if (nr==0 or nr==1 or nr==5 or nr==6)
    return nr;
switch(pwr%4){
case 0: return (nr*nr*nr*nr*1ULL )%10;
case 1: return nr%10;
case 2:return (nr*nr)%10;
case 3: return (nr*nr*nr)%10;
}
}*/
int main()
{
    /* ull sum=0;
     for (int i=1;i<=100;++i)
         {sum+=u(i,i);
         sum%=10;
         cout<<sum<<" ,";
         if (i%25==0)
             cout<<'\n';
         }*/
    int t;
    in>>t;
    in.get();
    for (int i=1; i<=t; ++i)
    {
        in.getline(s,105);
        int d=strlen(s),ans;
        if (d==1)
            ans=v[s[d-1]-'0'];
        else
        {
            ans=v[(s[d-2]-'0')*10+(s[d-1]-'0')];
            if (d>2)
                ans+=(s[d-3]-'0')*v[100];
        }
        out<<ans<<'\n';
    }
}