Pagini recente » Cod sursa (job #2391431) | Cod sursa (job #1361009) | Cod sursa (job #1070140) | Cod sursa (job #164465) | Cod sursa (job #483646)
Cod sursa(job #483646)
#include<fstream>
using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int n[600],ii[5],c[600],d[600],e[2];
void mult(int a[],int b[])
{ int t=0,i,j,sol;
for(i=1;i<=a[0]+b[0];c[i]=0,i++);
c[0]=a[0]+b[0]-1;
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++)
sol=c[i]+t , c[i]=sol%10 , t=sol/10;
if(t) c[++c[0]]=t;
for(i=1;i<=c[0];a[i]=c[i],i++);
a[0]=c[0];
}
void pow(int N)
{ e[0]=1; e[1]=2;
d[0]=1; d[1]=1;
for(int i=1;i<=N;i++)
{ mult(d,e);
}
}
int main()
{ int N,i,x,aux;
f>>N;
n[0]=n[1]=1;
for(i=1;i<=N;i++)
{ aux=i; x=1;
while(aux) ii[x++]=aux%10 , aux/=10;
ii[0]=x-1;
mult(n,ii);
}
pow(N*N);
mult(n,d);
for(i=n[0];i>=1;g<<n[i],i--);
f.close();
g.close();
return 0;
}