#include #define MAX_XL 1000 #define MODULO (1000000000) #define PRUSER (*((char*)0) = '1') #define MAX_VRSEK 2000 typedef struct { int data [MAX_XL]; int len; } cislo; void init(cislo *a) { a->len = 0; a->data[0] = 0; a->data[1] = 0; } void copy(cislo *a, cislo *b) { a->len = b->len; memcpy(a->data, b->data, sizeof(int) * b->len); a->data[a->len] = 0; } void add (cislo *a, cislo *b) { int xl = a->len; int yl = a->len; int i; int c = 0; if (xl < b->len) { xl = b->len; } else { yl = b->len; } for (i = 0; i < yl; i++) { a->data[i] += c + b->data[i]; if (a->data[i] >= MODULO) { a->data[i] -= MODULO; c = 1; } else c = 0; } if (xl > a->len) { for (; i < xl; i++) { a->data[i] = b->data[i] + c; if (a->data[i] >= MODULO) { a->data[i] -= MODULO; c = 1; } else c = 0; } } else { for (; i < xl; i++) { a->data[i] += c; if (a->data[i] >= MODULO) { a->data[i] -= MODULO; c = 1; } else c = 0; } } if (c > 0) { a->data[xl] = 1; a->len = xl + 1; } else { a->len = xl; } a->data[a->len] = 0; if (a->len >= MAX_XL ) { PRUSER; } } void sub (cislo *a, cislo *b) { int xl = a->len; int yl = a->len; int i; int c = 0; if (xl < b->len) { xl = b->len; } else { yl = b->len; } for (i = 0; i < yl; i++) { a->data[i] -= b->data[i] + c; if (a->data[i] < 0) { c = 1; a->data[i] += MODULO; } else { c = 0; } } if (c) { for (; i < xl && c; i++) { a->data[i] -= c; if (a->data[i] < 0) { c = 1; a->data[i] += MODULO; } else { c = 0; } } } i = a->len - 1; while (i >= 0 && !a->data[i]) { i--; } a->len = i + 1; a->data[a->len] = 0; } cislo radek[MAX_VRSEK]; void calcRadek (int n) { int i,j; init(radek + (MAX_VRSEK - 1)); radek[MAX_VRSEK - 1].len =1; radek[MAX_VRSEK - 1].data[0] =1; for (i = 1; i <= n; i++) { int levy = MAX_VRSEK - 1 - i; copy(radek + levy, radek + levy + 1); for (j = 1; j < i; j++) { add(radek + levy + j, radek + levy + j+1); } } } int main() { printf("Hello, world!\n"); return 0; }