Cod sursa(job #528764)

Utilizator HoriaClementHoriaC HoriaClement Data 3 februarie 2011 13:46:24
Problema Patrate2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>

const int N=1100;

int A[N],n,i,b;

void mul(int A[], int B)
{
    int i, t = 0;
    for (i = 1; i <= A[0] || t; i++, t /= 10)
        A[i] = (t += A[i] * B) % 10;
     A[0] = i - 1;
}

void citire()
{
	freopen("patrate2.in","r",stdin);
	freopen("patrate2.out","w",stdout);
	scanf("%d",&n);
}
void work()
{
	A[0]=1; A[1]=1;
	
	b=n*n;
	--b;
	mul(A,2);
	while (b>1)  
		if(b%2==1) 
		{ 
			mul(A,2); 
			--b;
		}  
	else 
	{
		mul(A,4); 
		b-=2;
	} 
	for(i=1;i<=n;++i)
		mul(A,i);
	for(i=A[0];i>=1;--i)
		printf("%d",A[i]);
}
int main()
{
	citire();
	work();
	return 0;
}