Cod sursa(job #1847330)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 14 ianuarie 2017 15:34:51
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.69 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream fin ("cifra.in");
ofstream fout ("cifra.out");
int t,i,n,nr,rest,uc,a[10][5],suma;
int w[] = {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 v[110];
int main (){
    //a[i][j] - ultima cufra a lui i la puterea j(0<=j<4);
    for (nr=1;nr<=9;nr++){
        i = nr;
        rest = nr%4;
        if (i==1){
            a[1][0] = a[1][1] = a[1][2] = a[1][3] = 1;
        }
        if (i==2){
            if (rest == 0)
                a[2][0] = 6;
            if (rest == 1)
                a[2][1] = 2;
            if (rest == 2)
                a[2][2] = 4;
            if (rest == 3)
                a[2][3] = 8;
        }
        if (i==3){
            if (rest == 0)
                a[3][0] = 1;
            if (rest == 1)
                a[3][1] = 3;
            if (rest == 2)
                a[3][2] = 9;
            if (rest == 3)
                a[3][3] = 7;
        }
        if (i==4){
            if (rest%2 == 0)
                a[4][0] = a[4][2] = 6;
            else
                a[4][1] = a[4][3] = 4;

        }
        if (i==5){
            a[5][0] = a[5][1] = a[5][2] = a[5][3] = 5;
        }
        if (i==6){
            a[6][0] = a[6][1] = a[6][2] = a[6][3] = 6;
        }
        if (i==7){
            if (rest == 0)
                a[7][0] = 1;
            if (rest == 1)
                a[7][1] = 7;
            if (rest == 2)
                a[7][2] = 9;
            if (rest == 3)
                a[7][3] = 3;
        }
        if (i==8){
            if (rest == 0)
                a[8][0] = 6;
            if (rest == 1)
                a[8][1] = 8;
            if (rest == 2)
                a[8][2] = 4;
            if (rest == 3)
                a[8][3] = 2;
        }
        if (i==9){
            if (rest%2 == 0)
                a[9][0] = a[9][2] = 1;
            else
                a[9][1] = a[9][3] = 9;
        }
    }
   /* w[0] = 0;
    for (i=1;i<=99;i++){
        uc = a[i%10][i%4];
        w[i] = (w[i-1]+uc)%10;
        fout<<w[i]<<" ";
    }*/

    suma %= 10;
    fin>>t;
    for (;t--;){
        fin>>v;
        n = strlen (v);
        if (n > 1){
            nr = (v[n-2]-'0')*10+(v[n-1]-'0');
        }
        else{
            nr = v[n-1]-'0';
        }
        // trebuie sa afisam ultima cifra a numarului nr
        fout<<w[nr]<<"\n";
    }






    return 0;
}