Pagini recente » Cod sursa (job #165553) | Cod sursa (job #3142307) | Cod sursa (job #2531855) | Cod sursa (job #3249918) | Cod sursa (job #827741)
Cod sursa(job #827741)
#include<stdio.h>
#include<fstream>
using namespace std;
#define MAXF 3500
typedef int Huge[ MAXF ];
int n, i, t;
Huge a, b, res;
inline void Mult(Huge a, int x)
{
int i, T = 0;
for(i = 1; i <= a[0]; ++i)
{
a[i] *= x;
a[i] += T;
T = a[i] / 10;
a[i] %= 10;
}
while(T)
++a[0], a[ a[0] ] = T % 10, T /= 10;
}
inline void MultHuge(Huge a, Huge b, Huge c)
{
int i, j, T;
for(i = 1; i <= a[0]; ++i)
for(j = 1; j <= b[0]; ++j)
c[i+j-1] += a[i] * b[j];
c[0] = a[0] + b[0] - 1;
for(i = 1; i <= c[0]; ++i)
c[i] += T, T = c[i] / 10, c[i] %= 10;
while(T)
++c[0], c[ c[0] ] = T % 10, T /= 10;
}
int main()
{
ifstream f("patrate2.in");
f >> n;
f.close();
a[0] = a[1] = b[0] = b[1] = 1;
t = n * n;
for(i = 1; i <= t; ++i)
Mult(a, 2);
for(i = 2; i <= n; ++i)
Mult(b, i);
MultHuge(a, b, res);
FILE *g = fopen("patrate2.out", "w");
for(i = res[0]; i; --i)
fprintf(g, "%d", res[i]);
fprintf(g, "\n");
fclose(g);
return 0;
}