Cod sursa(job #463655)

Utilizator voikybodea voichita voiky Data 16 iunie 2010 22:11:15
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
using namespace std;
ifstream f("cifra.in");ofstream g("cifra.out");

char s[101];

int uc(int i,int j)//ultima cifra a numarului i^j
{
	if(i==0 || i==1 || i==5 || i==6)return i;
	if(i==2)
		switch(j%4){
			case 1:return 2;
			case 2:return 4;
			case 3:return 8;
			case 0:return 6;
		}
	if(i==3)
		switch(j%4){
			case 1:return 3;
			case 2:return 9;
			case 3:return 7;
			case 0:return 1;
		}
	if(i==4)
		switch(j%2){
			case 1:return 4;
			case 0:return 6;
		}
	if(i==7)
		switch(j%4){
			case 1:return 7;
			case 2:return 9;
			case 3:return 3;
			case 0:return 1;
		}
	if(i==8)
		switch(j%4){
			case 1:return 8;
			case 2:return 4;
			case 3:return 2;
			case 0:return 6;
		}
	if(i==9)
		switch(j%2){
			case 1:return 9;
			case 0:return 1;
		}
	return -1;//cod de eroare
}

int main()
{
	f.getline(s,101);//sar peste T
	int i,suma,k,j;
	while(f.getline(s,101))
	{
		suma=0;
		k=i=s[strlen(s)-1]-'0';
		if(strlen(s)>1)k=k+(s[strlen(s)-2]-'0')*10;
		g<<j<<' ';
		for(j=1;j<=i;j++)suma=(suma+uc(j,k))%10;
		g<<suma<<'\n';
	}
	f.close();g.close();
	return 0;
}