Cod sursa(job #2397065)

Utilizator FrostfireMagirescu Tudor Frostfire Data 4 aprilie 2019 09:56:54
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.86 kb
#include <fstream>
#include <iostream>
#include <cstring>

using namespace std;

ifstream f("cifra.in");
ofstream g("cifra.out");

int T, v[105];

void sum()
{
    for(int i=1; i<=100; i++)
        switch(i%10)
        {   case 0 : {  v[i] = v[i-1];
                        break;
                     }
            case 1 : {  v[i] = (v[i-1] + 1) % 10;
                        break;
                     }
            case 2 : {  if(i % 4 == 2) v[i] = (v[i-1] + 4) % 10;
                        else v[i] = (v[i-1] + 6) % 10;
                        break;
                     }
            case 3 : {  if(i % 4 == 3) v[i] = (v[i-1] + 7) % 10;
                        else v[i] = (v[i-1] + 3) % 10;
                        break;
                     }
            case 4 : {  v[i] = (v[i-1] + 6) % 10;
                        break;
                     }
            case 5 : {  v[i] = (v[i-1] + 5) % 10;
                        break;
                     }
            case 6 : {  v[i] = (v[i-1] + 6) % 10;
                        break;
                     }
            case 7 : {  if(i % 4 == 3) v[i] = (v[i-1] + 3) % 10;
                        else v[i] = (v[i-1] + 7) % 10;
                        break;
                     }
            case 8 : {  if(i % 4 == 0) v[i] = (v[i-1] + 6) % 10;
                        else v[i] = (v[i-1] + 4) % 10;
                        break;
                     }
            case 9 : {  v[i] = (v[i-1] + 9) % 10;
                        break;
                     }
        }
}

int main()
{
    sum();
    f >> T;
    while(T--)
    {
        char c[150];
        int nr;
        f >> c;
        if(strlen(c) == 1) nr = c[0] - '0';
        else nr = (c[strlen(c) - 2] - '0') * 10 + c[strlen(c) - 1] - '0';
        cout << nr << '\n';
        g << v[nr] << '\n';
    }
    return 0;
}