Pagini recente » Rating Dragos Bahrim (Ionnier) | Cod sursa (job #547864) | Cod sursa (job #2053544) | Statistici Ianus Vatamanita (gohome309) | Cod sursa (job #1781566)
#include<bits/stdc++.h>
#define baza 100000
using namespace std;
int n,aux[100015],v[100015],sol[100015];
void conversie(int x,int a[])
{
int da=0;
while(x)
{
a[++da]=x%baza;
x/=baza;
}
a[0]=da;
}
void inmultire(int a[],int b[])
{
int c[100005],t=0,i,j;
memset(c,0,100005);
for(i=1;i<=a[0];i++)
{
for(j=1;j<=b[0] || t;j++)
{
t=t+c[i+j-1]+a[i]*b[j];
c[i+j-1]=t%baza;
t/=baza;
}
if((i+j-2)>c[0]) c[0]=i+j-2;
}
memcpy(a,c,100000);
}
void scrie(int x)
{
if(x<10) printf("0000%d",x);
else
if(x<100) printf("000%d",x);
else
if(x<1000) printf("00%d",x);
else
if(x<10000) printf("0%d",x);
else
printf("%d",x);
}
int main()
{
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%d",&n);
aux[0]=1;
aux[1]=2;
sol[0]=1;
sol[1]=1;
for(int i=1;i<=(n*n);i++)
{
inmultire(sol,aux);
}
conversie(n,v);
inmultire(sol,v);
printf("%d",sol[sol[0]]);
for(int i=sol[0]-1;i>=1;i--) scrie(sol[i]);
printf("\n");
return 0;
}