Pagini recente » Cod sursa (job #834400) | Cod sursa (job #637617) | Cod sursa (job #716059) | Cod sursa (job #2319414) | Cod sursa (job #188417)
Cod sursa(job #188417)
#include <stdio.h>
#include <math.h>
const int B = 10000;
class nr_mare {
int * x, l, SIZE;
public:
nr_mare() {
int i;
SIZE = 20000;
x = new int[SIZE];
x[0] = 1;
for (i = 1; i < SIZE; ++i)
x[i] = 0;
l = 1;
}
~nr_mare() { delete[] x; }
void inmultire(int k) {
int t;
t = 0;
int i;
for (i = 0; i <= l; ++i) {
x[i] = x[i] * k + t;
t = x[i] / B;
x[i] %= B;
}
if ( x[i - 2] ) ++l;
}
void afisare(FILE *f) {
int i;
for (i = l + 1; !x[i]; --i) ;
for (; i >= 0; --i) {
if (x[i] < 1000 && x[i + 1]) {
if (x[i] > 99) fprintf(f, "0");
else if (x[i] > 9) fprintf(f, "00");
else fprintf(f, "000");
}
fprintf(f, "%d", x[i]);
}
}
};
int main()
{
nr_mare x;
int n, i;
FILE *f1, *f2;
f1 = fopen("patrate2.in", "r");
f2 = fopen("patrate2.out", "w");
fscanf(f1, "%d", &n);
for (i = 1; i <= n * n; ++i) x.inmultire(2);
for (i = 2; i <= n; ++i) x.inmultire(i);
x.afisare(f2);
fprintf(f2, "\n");
fclose(f1);
fclose(f2);
return 0;
}