Cod sursa(job #2215839)

Utilizator vadim171098vadim pislari vadim171098 Data 23 iunie 2018 20:09:42
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <iostream>
#include <fstream>

using namespace std;

int ultimul( int nr, int ult){
    int n= nr % 4;
    if (ult == 0) return 0;
    if (ult == 1) return 1;
    if (ult == 2){
        if (n == 0) return 6;
        if (n == 2) return 4;
    }
    if(ult == 3){
        if(n == 3) return 7;
        if(n == 1) return 3;
     }
    if(ult == 4) return 6;
    if(ult == 5) return 5;
    if(ult == 6) return 6;
    if(ult == 7){
        if (n == 3) return 3;
        if (n == 1) return 7;
    }
    if(ult==8){
        if(n==0) return 6;
        if(n==2) return 4;
    }
    if(ult==9)return 9;
}

int cifre(int T,int arr[100]){
    int rest = T % 10, k , aux = rest;

    int suma = (arr[T-1] + ultimul(T,T%10)) % 10;
    return suma;
}

int main()
{
    ifstream in;
    in.open("cifra.in");
    ofstream out;
    out.open("cifra.out");
    int nr,i;
    in >> nr;
    string str;
    getline (in, str);
    int arr[100];
    arr[0]=0;
    for (i = 1; i != 100 ; i++){
        arr[i]= cifre(i,arr);
    }
    for(i = 0 ; i != nr; i++){
        int k;
        getline (in, str);
        int n = str.length();
        if(n == 1) k = str[n - 1] - '0';
        else k = (str[n - 2] - '0') *10 + (str[n - 1] -'0');
        if(k==0){
            out << 0 << endl;
            continue;
        }
        out << arr[k] << endl;
    }
}