Cod sursa(job #2328749)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 26 ianuarie 2019 10:29:07
Problema Patrate2 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
#include <cmath>

using namespace std;
FILE* FIN=freopen("patrate2.in","r",stdin);
FILE* FOUT=freopen("patrate2.out","w",stdout);

int v[3200],l;

void mult(int x)
{
    int i,r=0;
    for(i=0;i<l;i++)
    {
        v[i]*=x;
        v[i]+=r;
        r=v[i]/10;
        v[i]%=10;
    }
    for(;v[i]+r;i++)
    {
        v[i]*=x;
        v[i]+=r;
        r=v[i]/10;
        v[i]%=10;
    }
    l=i;
}
void af()
{
    int i;
    for(i=l-1;i;i--)
        printf("%d",v[i]);
    printf("%d",v[0]);
}
int main()
{
    int n,i;
    v[0]=1;
    l=1;
    scanf("%d",&n);
    for(i=2;i<=n;i++)
        mult(i);
    n*=n;
    while(n>=20)
    {
        mult(1048576);
        n-=20;;
    }
    while(n>=5)
    {
        mult(64);
        n-=5;
    }
    while(n--)
        mult(2);
    af();
    return 0;
}