Cod sursa(job #82070)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 5 septembrie 2007 17:57:26
Problema Patrate2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
#include<string.h>
#include<math.h>

long long n[100000], rez;

void citire()
 { 
   freopen("patrate2.in","r",stdin);
   freopen("patrate2.out","w",stdout);
   scanf("%lld",&n[1]);
   n[0]= 1;
   rez=n[1];

}

void inmultire(long long A[],long long B)
{
      long long i, t = 0;
      for (i = 1; i <= A[0] || t; i++, t /= 1000000)
	      A[i] = (t += A[i] * B) % 1000000;
      A[0] = i - 1;
}

int main()
{
  citire();
  long long i;
  n[0]=1; n[1]=2;
  for (i=1; i<rez*rez; i++)
     inmultire(n,2);
  for (i=2; i<=rez; i++)
     inmultire(n,i);
  for (i=n[0]; i>=1; i--)
     {
       if (n[i]/100==0 && i!=n[0]) {printf("0000");printf("%ld",n[i]);}
       else
       if (n[i]/1000==0 && i!=n[0]) {printf("000");printf("%ld",n[i]);}
       else
       if (n[i]/10000==0 && i!=n[0]) {printf("00");printf("%ld",n[i]);}
       else
       if (n[i]/100000==0 && i!=n[0]) {printf("0");printf("%ld",n[i]);}
       else printf("%lld",n[i]);
     }
  return 0;

}