Cod sursa(job #1169743)

Utilizator Kerriganamihut Kerrigan Data 11 aprilie 2014 23:05:20
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
/******************************************************************************************
*           .--.																		  *
* ::\`--._,'.::.`._.--'/::			@author Ana M. Mihut	@course InfoArena Tryout	  *
* ::::. `  __::__ ' .:::::			@alias  LT-Kerrigan		@date   11.04.2014			  *
* ::::::-:.`'..`'.:-::::::			@link   http://infoarena.ro/problema/cifra		      *
* ::::::::\ `--' /::::::::			@detail	1^1 + 2^2 +...+N^N							  *
*																						  *
*******************************************************************************************/

#include <fstream>
#include <string.h>

FILE *in = fopen("cifra.in", "r");
std::ofstream out("cifra.out");

int PopulateVec(int x) {
	if (x % 10 == 0 || x % 10 == 1 || x % 10 == 5) 
		return (x % 10);

	unsigned int tmp = 1;
	for (int i = 1; i <= x; i++) 
		tmp *= x%10;
	return tmp;
}

int main(){
	int n, t, len;
	int  a[100] = { 0 };
	char s[110];

	for (int i = 1; i < 100; i++)
		a[i] = (a[i-1] + PopulateVec(i)) % 10;
	
	fscanf(in, "%d", &n);
	
	for (int i = 0; i < n; i++){
		fscanf(in, "\n%s", s);
		len = strlen(s);
		((len == 1) ? (t = s[0] - '0') : (t = 10 * (s[len-2] - '0') + s[len-1] - '0'));
		out << a[t] << '\n';
	}
	return 0;
}