Cod sursa(job #903971)

Utilizator baTTLe4u_15Nita Iulian baTTLe4u_15 Data 3 martie 2013 15:27:41
Problema Cifra Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<stdio.h>
#include<string.h>
int main()
{
int t;
char s[1000];

FILE *f=fopen("cifra.in","r"),*g=fopen("cifra.out","w");



fscanf(f,"%d",&t);
for(int i=0;i<t;i++)
{
	//citeste numarul ca sir de caractere
	//nu ne intereseaza decat ultimele 2 cifre
	fscanf(f,"%s",s);
	
	//ultima cifra o fac int
	int lungS=strlen(s);
	int nr=s[lungS-1]-48;
	
	//daca numarul are mai mult de o cifra, formam numar din ultimele 2
	if(lungS>1)
	nr+=(s[lungS-2]-48)*10;

	//fac calculele:
	int s=0;
	        //incep de la 2, primul numar are intotdeauna 1 dupa ridicare deci il voi trata la final
	for(int j=2;j<=nr;j++)
	{
		int n=j%10; // ridicarea la putere are nevoie de ultima cifra
		int p=j%4; // ultima cifra se reia din 4 in 4
		long x=1;
		p==0?p=4:p;
		for(int k=0;k<p;k++)
			x*=n,x%=10;// intotdeauna pastrez doar ultima cifra
		 
		 
		s+=x;
	}
	fprintf(g,"%d\n",(s+1)%10);
}

fclose(f);
fclose(g);
}