Pagini recente » Cod sursa (job #36001) | Cod sursa (job #2888394) | Cod sursa (job #2115173) | Cod sursa (job #691781) | Cod sursa (job #399616)
Cod sursa(job #399616)
#include <stdio.h>
#include <cstdlib>
#include <cstring>
const int NR_CIFRE = 1 << 20;
int N, v[NR_CIFRE];
void mul(int B) {
int i, t = 0;
for (i = 1; i <= v[0] || t; i++, t /= 10) {
v[i] = (t += v[i] * B) % 10;
}
v[0] = i - 1;
}
/*
void Mmul(int A[], int B[])
{
int i, j, t, C[NR_CIFRE];
memset(C, 0, sizeof(C));
for (i = 1; i <= A[0]; i++)
{
for (t=0, j=1; j <= B[0] || t; j++, t/=10)
C[i+j-1]=(t+=C[i+j-1]+A[i]*B[j])%10;
if (i + j - 2 > C[0]) C[0] = i + j - 2;
}
memcpy(A, C, sizeof(C));
}
void pow (long long p) {
int a=2;--p;
for (; p; p >>= 1) {
if (p&1 == 1) {
mul(a);
}
a *= a;
}
}
*/
void solve () {
v[0]=1;v[1]=2;
for (int i= 2; i <= N*N; i+=2) {
mul(4);
}
for (int i = 2; i <= N; ++i) {
mul(i);
}
}
int main () {
freopen ("patrate2.in", "r", stdin);
freopen ("patrate2.out", "w", stdout);
scanf ("%d", &N);
solve ();
for (int i = v[0]; i >=1; --i) {
printf ("%d", v[i]);
}
return 0;
}