Cod sursa(job #780694)

Utilizator aranhilChivu Stefan Iulian aranhil Data 20 august 2012 23:43:54
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
#include<stdio.h>
#include<string.h>

int main() {
	FILE *f = fopen("cifra.in", "r");
	FILE *g = fopen("cifra.out", "w");
	
	int n;
	
	fscanf(f, "%d", &n);
	
	for(int i = 0; i < n; i++) {
		char numar[101];
		fscanf(f, "%s\n", numar);
		int len = strlen(numar), ult = 0;
		
		if(len >= 2) ult = ((numar[len - 2] - '0') / 2) * 4;
		//printf("%d", ult);
		if(len < 2 || (numar[len - 2] - '0') % 2 == 0) {
			switch(numar[len - 1] - '0') {
				case 0:
					ult = ult % 10 + 0;
					break;
				case 1:
					ult = ult % 10 + 1;
					break;
				case 2:
					ult = ult % 10 + 5;
					break;
				case 3:
					ult = ult % 10 + 2;
					break;
				case 4:
					ult = ult % 10 + 8;
					break;
				case 5:
					ult = ult % 10 + 3;
					break;
				case 6:
					ult = ult % 10 + 9;
					break;
				case 7:
					ult = ult % 10 + 2;
					break;
				case 8:
					ult = ult % 10 + 8;
					break;
				case 9:
					ult = ult % 10 + 7;
					break;
			}
		}
		else {
			switch(numar[len - 1] - '0') {
				case 0:
					ult = ult % 10 + 0;
					break;
				case 1:
					ult = ult % 10 + 8;
					break;
				case 2:
					ult = ult % 10 + 4;
					break;
				case 3:
					ult = ult % 10 + 7;
					break;
				case 4:
					ult = ult % 10 + 3;
					break;
				case 5:
					ult = ult % 10 + 8;
					break;
				case 6:
					ult = ult % 10 + 4;
					break;
				case 7:
					ult = ult % 10 + 1;
					break;
				case 8:
					ult = ult % 10 + 5;
					break;
				case 9:
					ult = ult % 10 + 4;
					break;
			}
		}
		fprintf(g,"%d\n", ult % 10);
	}
	
	fclose(f);
	fclose(g);
}