Cod sursa(job #903975)

Utilizator baTTLe4u_15Nita Iulian baTTLe4u_15 Data 3 martie 2013 15:31:16
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
#include<string.h>
int main()
{
int t,lungS,nr,n,p,i,j,k,suma,x;
char s[1000];

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



fscanf(f,"%d",&t);
for(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
	lungS=strlen(s);
	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:
	suma=0;
	        //incep de la 2, primul numar are intotdeauna 1 dupa ridicare deci il voi trata la final
	for(j=1;j<=nr;j++)
	{
		n=j%10; // ridicarea la putere are nevoie de ultima cifra
		p=j%4; // ultima cifra se reia din 4 in 4
		x=1;
		p==0?p=4:p;
		for(k=0;k<p;k++)
			x*=n,x%=10;// intotdeauna pastrez doar ultima cifra
		 
		 
		suma+=x;
	}
	fprintf(g,"%d\n",suma%10);
}

fclose(f);
fclose(g);
}