Pagini recente » Cod sursa (job #2912734) | Cod sursa (job #1695272) | Cod sursa (job #499499) | Cod sursa (job #2320360) | Cod sursa (job #63106)
Cod sursa(job #63106)
#include <stdio.h>
#include <time.h>
#define NMAX 500
#define B 10000
int N;
int a[NMAX], b[NMAX];
void mul(int a[NMAX], int n) {
int i, t = 0;
for (i = 1; i <= a[0] || t; ++i, t/=B)
a[i] = (t += a[i] * n) % B;
a[0] = i-1;
}
void write(int a[NMAX]) {
int i;
printf("%d", a[a[0]]);
for (i = a[0]-1; i; --i) {
if (a[i] / 1000 == 0)
printf("0");
if (a[i] / 100 == 0)
printf("0");
if (a[i] / 10 == 0)
printf("0");
printf("%d", a[i]);
}
printf("\n");
}
int main() {
int i;
clock_t begin, end;
freopen("patrate2.in", "r", stdin);
freopen("patrate2.out", "w", stdout);
a[0] = a[1] = 1;
scanf("%d", &N);
begin = clock();
for (i = 1; i <= N; ++i)
mul(a, i);
for (i = 1; i+16 <= N*N; i+=16)
mul(a, (1<<16));
for (; i <= N*N; ++i)
mul(a, 2);
//for (i = a[0]; i; --i)
// printf("%d ", a[i]);
write(a);
end = clock();
//printf("%d\n", end - begin);
//printf("%d ", b[0]);
}