Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #2853752) | Cod sursa (job #1621507) | Cod sursa (job #2891310) | Cod sursa (job #842126)
Cod sursa(job #842126)
#include<stdio.h>
#include<assert.h>
using namespace std;
#define NMAX 101
#define DIM 100000
#define BAZA 10000
int a[DIM];
inline void mult(int a[], int b)
{
int i,r;
for(i=1,r=0;i<=a[0] || r;i++) {
r=a[i]*b+r;
a[i]=r%BAZA;
r=r/BAZA;
}
a[0]=i-1;
}
int main ()
{
int n,i;
assert(freopen("patrate2.in","r",stdin));
assert(freopen("patrate2.out","w",stdout));
assert(scanf("%d",&n));
fclose(stdin);
a[0]=1;
a[1]=1;
for(i=2;i<=n;i++)
mult(a,i);
for(i=1;i<=(n*n)/16;i++)
mult(a,(1<<16));
for(i=1;i<=((n*n)&15);i++)
mult(a,2);
printf("%d",a[a[0]]);
for(i=a[0]-1;i>=1;i--)
printf("%.4d",a[i]);
printf("\n");
fclose(stdout);
return 0;
}