Cod sursa(job #2215988)

Utilizator vadim171098vadim pislari vadim171098 Data 24 iunie 2018 14:36:35
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <iostream>
#include <fstream>
#include <string.h>
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;
    return 0;
}

int cifre(int T,int arr[100]){
    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;
    char str[100];
    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;
        in >>str;
        int n = strlen(str);
        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;
    }
}