Cod sursa(job #1847324)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 14 ianuarie 2017 15:29:31
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.36 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,w[110];
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;
    }

    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;
}