Cod sursa(job #390242)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 3 februarie 2010 12:50:28
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
int fact[3300],n;
void inmul (int a[3300],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;
    inmul(fact,(1<<(n%8)));
    n-=(n%8);
    n/=8;
    for(i=1;i<=n;i++)
        inmul(fact,256);
    for(i=fact[0];i>=1;i--)
        printf("%d",fact[i]);
    printf("\n");
    return 0;
}