Cod sursa(job #390236)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 3 februarie 2010 12:42:31
Problema Patrate2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
int fact[3500],n;
void inmul (int a[3500],int b)
{
    int i;
    int x, t = 0;
    for(i=1;i<=a[0] || t; i++)
    {
        if (i > a[0])
            a[i] = 0;
        x=a[i]*b+t;
        t=x/10;
        a[i]=x%10;
    }
    a[0]=i-1;
}

int main ()
{
    int i;
    freopen("patrate2.in","r",stdin);
    freopen("patrate2.out","w",stdout);
    scanf("%d",&n);
    fact[0]=fact[1]=1;
    for(i=1;i<=n;i++)
        inmul(fact,i);
    n*=n;
    if(n%2==1)
    {
        inmul(fact,2);
        n--;
    }
    n/=2;
    for(i=1;i<=n;i++)
        inmul(fact,4);
    for(i=fact[0];i>=1;i--)
        printf("%d",fact[i]);
    printf("\n");
    return 0;
}