Cod sursa(job #969260)

Utilizator andy1496Casu-Pop Andrei andy1496 Data 3 iulie 2013 22:28:47
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.37 kb
#include <cstdio>
#include <stdlib.h>
using namespace std;
    int T,i,cifra,k;
    char *v = (char*) calloc (103,sizeof(char));
    char x;
  
int main(){
      
    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);
      
    scanf ("%d", &T);
    scanf ("%c", &x);
    while (T>0){
        cifra=0;
        scanf ("%c", &v[0]);
        i=1;
        while (v[i-1]!='\n'){
            scanf("%c", &v[i]);
            i++;
        }
        i=i-2;
        if (i==0){
            while (v[i]!=0){
            switch (v[i]){
                case '1': cifra=cifra+1; break;
                case '2': cifra=cifra+4; break;
                case '3': cifra=cifra+7; break;
                case '4': cifra=cifra+6; break;
                case '5': cifra=cifra+5;  break;
                case '6': cifra=cifra+6; break;
                case '7': cifra=cifra+3; break;
                case '8': cifra=cifra+6; break;
                case '9': cifra=cifra+9; break;
            }
            v[i]--;
        }
        }
        else {
            cifra=(v[i-1]*7)%10;
            if (v[i-1]%2==0){
                while (v[i]!=0){
                switch (v[i]){
                case '1': cifra=cifra+1; break;
                case '2': cifra=cifra+4; break;
                case '3': cifra=cifra+7; break;
                case '4': cifra=cifra+6; break;
                case '5': cifra=cifra+5; break;
                case '6': cifra=cifra+6; break;
                case '7': cifra=cifra+3; break;
                case '8': cifra=cifra+6; break;
                case '9': cifra=cifra+9; break;
            }
            v[i]--;
        }
            }
            else {
                while (v[i]!=0) {
                switch (v[i]){
                case '1': cifra=cifra+1; break;
                case '2': cifra=cifra+6; break;
                case '3': cifra=cifra+3; break;
                case '4': cifra=cifra+6; break;
                case '5': cifra=cifra+5;  break;
                case '6': cifra=cifra+6; break;
                case '7': cifra=cifra+7; break;
                case '8': cifra=cifra+4; break;
                case '9': cifra=cifra+9; break;
            }
            v[i]--;
        }
        }
        }
        printf ("%d", cifra%10);
        printf ("\n");
        T--;
    }
      
    return 0;
}