Pagini recente » Cod sursa (job #1615509) | Cod sursa (job #1910878) | Cod sursa (job #1169993) | Cod sursa (job #1992970) | Cod sursa (job #2229552)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
std::ifstream in("patrate2.in");
std::ofstream out("patrate2.out");
using namespace std;
const int NMAX = 10001;
const int BASE = 10;
char S[NMAX + 1];
typedef int Huge[NMAX + 1];
class BigNumber
{
public :
Huge Number;
void Construct(char S[])
{
int lu = strlen(S) - 1;
Number[0] = lu + 1;
int NR = 1;
for (int k = lu; k >= 0; --k)
{
Number[NR] = S[k] - '0';
NR++;
}
}
void Erase0()
{
while (Number[0] && !Number[Number[0]]) Number[0]--;
}
void Show()
{
for (int i = Number[0]; i >= 1; --i)
out << Number[i];
}
};
void Mult(Huge NR1, Huge NR2 , Huge NR3)
{
int T = 0;
NR3[0] = NR1[0] + NR2[0] - 1;
for (int i = 1; i <= NR1[0] + NR2[0]; ++i) NR3[i] = 0;
for (int i = 1; i <= NR1[0]; ++i)
for (int j = 1; j <= NR2[0]; ++j)
NR3[i + j - 1] += NR1[i] * NR2[j];
for (int i = 1; i <= NR3[0]; ++i)
{
T = (NR3[i] += T) / BASE;
NR3[i] %= BASE;
}
if (T) NR3[++NR3[0]] = T;
}
void Scalar(Huge NR, long long X)
{
long long T = 0;
for (int i = 1; i <= NR[0]; ++i)
{
NR[i] = NR[i] * X + T;
T = NR[i] / BASE;
NR[i] %= BASE;
}
while (T)
{
NR[++NR[0]] = T % BASE;
T /= BASE;
}
}
inline void Init()
{
int N;
in >> N;
int N2 = N * N;
BigNumber D1;
D1.Number[0] = 1;
D1.Number[1] = 1;
for (int i = 1; i <= N2; ++i)
Scalar(D1.Number, 2);
for (int i = 1; i <= N; ++i)
Scalar(D1.Number, i);
D1.Show();
}
int main()
{
Init();
}