Pagini recente » Cod sursa (job #3280959) | Cod sursa (job #813844) | Cod sursa (job #636841) | Cod sursa (job #1835589) | Cod sursa (job #2042371)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int v[10001],n,fact[10001],a[100001];
void vs(int v[], unsigned long X)
{
int i;
unsigned long T=0;
for (i=1; i<=v[0]; i++)
{
v[i]=v[i]*X+T;
T=v[i]/10;
v[i]=v[i]%10;
}
while (T)
{
v[++v[0]]=T%10;
T/=10;
}
}
void vv(int A[], int B[], int C[])
{
int i,j,T=0;
C[0]=A[0]+B[0]-1;
for (i=1;i<=A[0]+B[0];) C[i++]=0;
for (i=1;i<=A[0];i++)
for (j=1;j<=B[0];j++)
C[i+j-1]+=A[i]*B[j];
for (i=1;i<=C[0];i++)
{ T=(C[i]+=T)/10;
C[i]%=10;
}
if (T) C[++C[0]]=T;
}
int main()
{
f>>n;
int putere=n*n;
v[0]=1;
v[1]=2;
fact[0]=1;
fact[1]=1;
for(int i=2; i<=putere; ++i)vs(v,2);
for(int i=2; i<=n; ++i)vs(fact,i);
vv(v,fact,a);
for(int i=a[0]; i>0; --i)g<<a[i];
return 0;
}