Pagini recente » Cod sursa (job #2335489) | Cod sursa (job #2877588) | Cod sursa (job #2917413) | Cod sursa (job #2665234) | Cod sursa (job #220639)
Cod sursa(job #220639)
#include <iostream>
#include <cmath>
const int maxn = 3000;
const int base = 1000000;
FILE *in = fopen("patrate2.in","r"), *out = fopen("patrate2.out","w");
int N;
int H[maxn];
void mul(int A[], int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= base)
{
A[i] = (t += A[i] * B) % base;
}
A[0] = i - 1;
}
int main()
{
fscanf(in, "%d", &N);
H[0] = 1;
H[1] = 2;
int end = N*N;
for ( int i = 1; i < end; ++i )
mul(H, 2);
for ( int i = 2; i <= N; ++i )
mul(H, i);
fprintf(out, "%d", H[H[0]]);
for ( int i = H[0]-1; i; --i )
{
// if ( H[i] == 0 )
// fprintf(out, "00000");
// else
// {
// int t = (int)log10((double)H[i]) + 1;
// for ( int j = t; j < 6; ++j )
// fprintf(out, "0");
// }
//
// fprintf(out, "%d", H[i]);
fprintf(out, "%06d", H[i]);
}
return 0;
}