Cod sursa(job #480477)

Utilizator ovydewParvu Ovidiu ovydew Data 28 august 2010 00:58:38
Problema Cifra Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
// Ultima cifra

#include <fstream>

using namespace std;

int ultima(int n) {
	int u = 1;
	for (int i=1; i<=n; i++) {
		u *= n;
		u %= 10;
	}
	return u;
}

int main() {
	FILE* fin = fopen("cifra.in","r");
	FILE* fout = fopen("cifra.out","w");
	int t, u, n, len, aux;
	char* buffer = new char[101];
	int* vector = new int[100];
	for (int i=1; i<=100; i++) {
		if (i==1)
			aux = ultima(i);
		else
			aux = ultima(i) + vector[i-2];
		vector[i-1] =  aux%10;
	}
	fscanf(fin, "%d", &t);
	for (int i=0; i<t; i++) {
		u = 0;
		fscanf(fin, "%s", buffer);
		len = strlen(buffer);
		if (len > 2) {
			n = atoi(&buffer[len-2]);
		} else if (len==2) {
			n = atoi(&buffer[0]);
		} else
			n = atoi(&buffer[0]);
		u = vector[n-1];
		if (i==0)
			fprintf(fout, "%d", u);
		else
			fprintf(fout, "\n%d", u);
	}
	fclose(fin);
	fclose(fout);
    return 0;
}