Cod sursa(job #1184073)

Utilizator dalv_1337Pasita Vlad dalv_1337 Data 11 mai 2014 00:33:46
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
#include <cstring>
using namespace std;

const int Loop = 100; // valoarea ultimei cifre a expresiei se repeta din 100 in 100, deci sunt necesare doar ultimele 2 cifre ale lui N
const int LgMax = 102;

void Init(int*);

int main()
{
	freopen("cifra.in","r",stdin);
	FILE* fOut = fopen("cifra.out","w");
	
	int v[Loop+1], T;
	Init(v);
	
	char n[LgMax];
	int i=1, lg, x;
	for (scanf("%d",&T); i<=T; ++i) {
		scanf("%s",n+1);
		lg=strlen(n+1);
		x=(lg>1 ? (n[lg-1]-'0')*10+n[lg]-'0' : n[lg]-'0');
		fprintf(fOut,"%d\n",v[x]);
	}
	
	return 0;
}

void Init(int v[])
{
	v[0]=0;
	int i, j, pow;
	for (i=1; i<=100; ++i) {
		pow=i;
		for (j=1; j<i; ++j) pow=(pow*i)%10;
		v[i]=(v[i-1]+pow)%10;
	}
}