Cod sursa(job #1105274)

Utilizator AdrianaMAdriana Moisil AdrianaM Data 11 februarie 2014 17:47:24
Problema Patrate2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream is("patrate2.in");
ofstream os("patrate2.out");

int n;
int a[3200];
int ceva;

void INMULTIRE(int x[3200], int y);

int main()
{
    is >> n;
    a[0] = 1;
    a[1] = 1;
    for ( int i = 2; i <= n; ++i )
        INMULTIRE(a, i);
    ceva = n * n;
    while ( ceva >= 10 )
    {
        ceva -= 10;
        INMULTIRE(a, 1024);
    }
    for ( int i = 1; i <= ceva; ++i )
        INMULTIRE(a, 2);
    for ( int i = a[0]; i; --i )
        os << a[i];
    is.close();
    os.close();
    return 0;
}

void INMULTIRE(int x[3200], int y)
{
    int rest = 0;
    int i;
    for ( i = 1; i <= x[0] || rest; ++i )
    {
        x[i] = x[i] * y + rest;
        rest = x[i] / 10;
        x[i] %= 10;
    }
    while ( x[x[0] + 1] )
        ++x[0];
}