Mai intai trebuie sa te autentifici.
Cod sursa(job #1453695)
| Utilizator | Data | 24 iunie 2015 11:10:55 | |
|---|---|---|---|
| Problema | Cifra | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.72 kb |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *f1 = fopen("cifra.in", "r");
FILE *f2 = fopen("cifra.out", "w");
int T;
fscanf(f1, "%d", &T);
int i;
char *nr = (char *) malloc (101 * sizeof(char));
int ultima_cifra, a, b;
for(i = 0;i < T;i++) {
fscanf(f1, "%s", nr);
b = nr[strlen(nr) - 1] - '0';
if(strlen(nr) == 1) {
switch(b) {
case 1: ultima_cifra = 1; break;
case 2: ultima_cifra = 5; break;
case 3: ultima_cifra = 2; break;
case 4: ultima_cifra = 8; break;
case 5: ultima_cifra = 3; break;
case 6: ultima_cifra = 9; break;
case 7: ultima_cifra = 2; break;
case 8: ultima_cifra = 8; break;
case 9: ultima_cifra = 7; break;
}
}
else {
a = nr[strlen(nr) - 2] - '0';
if(a%2 == 0) {
switch(b) {
case 1: ultima_cifra = 1; break;
case 2: ultima_cifra = 5; break;
case 3: ultima_cifra = 2; break;
case 4: ultima_cifra = 8; break;
case 5: ultima_cifra = 3; break;
case 6: ultima_cifra = 9; break;
case 7: ultima_cifra = 2; break;
case 8: ultima_cifra = 8; break;
case 9: ultima_cifra = 7; break;
case 0: ultima_cifra = 7;
}
}
else {
switch(b) {
case 1: ultima_cifra = 1; break;
case 2: ultima_cifra = 7; break;
case 3: ultima_cifra = 0; break;
case 4: ultima_cifra = 6; break;
case 5: ultima_cifra = 1; break;
case 6: ultima_cifra = 7; break;
case 7: ultima_cifra = 4; break;
case 8: ultima_cifra = 8; break;
case 9: ultima_cifra = 7; break;
case 0: ultima_cifra = 7;
}
}
ultima_cifra = (ultima_cifra + 7*a)%10;
}
fprintf(f2, "%d\n", ultima_cifra);
}
free(nr);
fclose(f1);
fclose(f2);
return 0;
}
