Pagini recente » Diferente pentru warm-up-2019/solutii/shoturi intre reviziile 85 si 99 | Istoria paginii runda/lsp_9 | Istoria paginii utilizator/almeu15 | Monitorul de evaluare | Cod sursa (job #147564)
Cod sursa(job #147564)
//numarul de patrate = 2^(n*n-1)* (2^n*n!)
#include <stdio.h>
#define l 100
#define b 10000000
long n,i,j;
long nr[l+10];
int main()
{
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%ld",&n);
nr[l]=1;
//calculez 2^(n*n-n)*2^n
for (i=1; i<=n*n; i++)
{
for (j=l; j>=1; j--)
nr[j]*=2;
for (j=l; j>=1; j--)
{
nr[j-1]+=nr[j]/b;
nr[j]%=b;
}
}
//calculez n!
for (i=1; i<=n; i++)
{
for (j=l; j>=1; j--)
nr[j]*=i;
for (j=l; j>=1; j--)
{
nr[j-1]+=nr[j]/b;
nr[j]%=b;
}
}
for (i=1; i<=l; i++)
if (nr[i]!=0)
{
j=i;
break;
}
printf("%ld",nr[j]);
for (i=j+1; i<=l; i++)
{
long cop=nr[i];
if (cop!=0)
while (cop<b/10)
{
printf("0");
cop*=10;
}
else printf("000000");
printf("%ld",nr[i]);
}
printf("\n");
return 0;
}