Cod sursa(job #2516779)

Utilizator ililogIlinca ililog Data 2 ianuarie 2020 13:35:31
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
using namespace std;
#include<iostream>
#include<fstream>

int n;

int p[10001];
/*
unsigned long long fact(int n) {
    unsigned long long x = 1;
    for (int i = 2; i<=n; i++) {
        x *= i;
    }

    return x;
}

unsigned long long putere(int b, int exp) {
    int p2 = 1;

    for (int i = 1; i<=exp; i++) {
        p2 *= b;
    }

    return p2;
}*/

void inmultire_scalar(int a[], int x, int c[]) {

    int t = 0;

    for (int i = 1; i<=a[0]; i++) {
        c[i] = a[i]*x+t;
        t = c[i]/10;
        c[i] %= 10;
    }
    c[0] = a[0];

    while (t) {
        c[++c[0]] = t%10;
        t /= 10;
    }
}

int main() {

    ifstream fin("patrate2.in");
    ofstream fout("patrate2.out");

    fin >> n;

    if (n == 1) {
        fout << "2";
        return 0;
    }

    p[0] = 1;
    p[1] = 1;

    for (int i = 2; i<=n; i++) {
        inmultire_scalar(p, i, p);
    }

    for (int i = 1; i<=n*n; i++) {
        inmultire_scalar(p, 2, p);
    }

    for (int i = p[0]; i>=1; i--) {
        fout << p[i];
    }



    fin.close();
    fout.close();

    return 0;
}