Cod sursa(job #821124)

Utilizator dariusdariusMarian Darius dariusdarius Data 21 noiembrie 2012 19:02:53
Problema Patrate2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
int a[100005];
void multiply(int val)
{
	int tr=0,i;
	for(i=1;i<=a[0];i++)
	{
		a[i]=a[i]*val+tr;
		tr=a[i]/10;
		a[i]%=10;
	}
	while(tr!=0) {a[++a[0]]=tr%10;tr=tr/10;}
}
int main()
{
	freopen("patrate2.in","r",stdin);
	freopen("patrate2.out","w",stdout);
	int n,i;
	scanf("%d",&n);
	a[0]=a[1]=1;
	//rezultatul e n! * 2^(n*n)
	for(i=1;i<=n;i++)
        multiply(i);
	for(i=1;i<=n*n/30;i++)
        multiply(1<<30);
	multiply(1<<((n*n)%30));
	for(i=a[0];i>=1;i--)
		printf("%d",a[i]);
    printf("\n");
	return 0;

}