Pagini recente » Cod sursa (job #107650) | Cod sursa (job #128169) | Cod sursa (job #1831475) | Cod sursa (job #2289414) | Cod sursa (job #3133622)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("patrate2.in");
ofstream cout ("patrate2.out");
// n! * 2^(n * n)
class Numar_Mare {
private:
vector <short> cifre;
public:
Numar_Mare (int numar) {
do cifre.push_back(numar % 10); while(numar /= 10);
}
~Numar_Mare () {
cifre.clear();
}
Numar_Mare operator *= (int factor) {
int transport = 0;
for (unsigned int indice = 0 ; indice < cifre.size() ; indice++ , transport /= 10)
cifre[indice] = (transport += cifre[indice] * factor) % 10;
while (transport)
cifre.push_back(transport % 10) , transport /= 10;
return *this;
}
friend ofstream &operator << (ofstream &iesire , const Numar_Mare numar) {
for (int indice = numar.cifre.size() - 1 ; indice >= 0 ; indice--)
iesire << numar.cifre[indice];
return iesire;
}
};
int main ()
{
int lungime;
cin >> lungime;
Numar_Mare rezultat(1);
for (int valoare = 1 ; valoare <= lungime ; valoare++)
rezultat *= 2 * valoare;
for (int indice = lungime + 1 ; indice <= lungime * lungime ; indice++)
rezultat *= 2;
cout << rezultat;
cout.close(); cin.close();
return 0;
}