Cod sursa(job #1402716)
| Utilizator | Data | 26 martie 2015 19:09:50 | |
|---|---|---|---|
| Problema | Cifra | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 3.86 kb |
#include <cstdio>
#include <algorithm>
#include <string.h>
using namespace std;
char v[105];
int main(){
int last,t,i,j,k;
freopen("cifra.in", "r", stdin);
freopen("cifra.out", "w", stdout);
scanf("%d",&t);
for(i = 1;i <= t;i++){
scanf("%s",&v);
if(strlen(v) > 1){
k = -1;
while((v[strlen(v) - 1] - '0') == 1 || (v[strlen(v) - 1] - '0') == 2 || (v[strlen(v) - 1] - '0') == 3 || (v[strlen(v) - 1] - '0') == 4 || (v[strlen(v) - 1] - '0') == 5 || (v[strlen(v) - 1] - '0') == 6 || (v[strlen(v) - 1] - '0') == 7 || (v[strlen(v) - 1] - '0') == 8 || (v[strlen(v) - 1] - '0') == 9){
k++;
v[strlen(v) - 1]++;
}
if(k > 0){
v[strlen(v) - 2]++;
}
last = ((v[strlen(v) - 2] - '0')*7)%10;
if((v[0] - '0')%2 == 0){
j = 9;
while(k > 0){
switch(j){
case 9: last = last - 9;
break;
case 8: last = last - 4;
break;
case 7: last = last - 7;
break;
case 6: last = last - 6;
break;
case 5: last = last - 5;
break;
case 4: last = last - 6;
break;
case 3: last = last - 3;
break;
case 2: last = last - 6;
break;
case 1: last = last - 1;
break;
}
k--;
j--;
if(last < 0){
last = 10 + last;
}
}
printf("%d\n",last);
}else{
j = 9;
while(k > 0){
switch(j){
case 9: last = last - 9;
break;
case 8: last = last - 6;
break;
case 7: last = last - 3;
break;
case 6: last = last - 6;
break;
case 5: last = last - 5;
break;
case 4: last = last - 6;
break;
case 3: last = last - 7;
break;
case 2: last = last - 4;
break;
case 1: last = last - 1;
break;
}
k--;
j--;
if(last < 0){
last = 10 + last;
}
}
printf("%d\n",last);
}
}else{
switch(v[0] - '0'){
case 1 : printf("1\n");
break;
case 2 : printf("5\n");
break;
case 3 : printf("2\n");
break;
case 4 : printf("8\n");
break;
case 5 : printf("3\n");
break;
case 6 : printf("9\n");
break;
case 7 : printf("2\n");
break;
case 8 : printf("8\n");
break;
case 9 : printf("7\n");
break;
}
}
}
return 0;
}
