Pagini recente » Cod sursa (job #573218) | Cod sursa (job #2413057) | Cod sursa (job #395554) | Cod sursa (job #3142790) | Cod sursa (job #872215)
Cod sursa(job #872215)
#include <stdio.h>
long n,i,j,p[3300],f[1000],r;
long l,q,lmax,rez[5000];
int main(){
freopen ("patrate2.in","r",stdin);
freopen ("patrate2.out","w",stdout);
scanf ("%d",&n);
p[1]=1;l=1;
for (i=1;i<=n*n;i++){
r=0;
for (j=1;j<=l;j++){p[j]=p[j]*2+r;r=p[j]/10;p[j]=p[j]-r*10;}
while(r){
l++;
p[l]=r%10;
r/=10;
}
}
f[1]=1;q=1;
for (i=2;i<=n;i++){
r=0;
for (j=1;j<=q;j++){f[j]=f[j]*i+r;r=f[j]/10;f[j]-=(r*10);}
while (r){
q++;
f[q]=r%10;
r/=10;
}
}
/*r=0;
lmax=l;
if (q>lmax)lmax=q;
for (i=1;i<=lmax;i++){f[i]+=p[i]+r;r=f[i]/10;f[i]=f[i]-(r*10);}
while (r){
lmax++;
f[lmax]=r%10;
r=r/10;
}*/
for (i=1;i<=l;i++)
for (j=1;j<=q;j++){
rez[i-1+j]+=p[i]*f[j];
}
lmax=l+q-1;
for (i=1;i<=lmax;i++){
if (rez[i]>9){rez[i+1]+=rez[i]/10;rez[i]=rez[i]%10;}
}
r=rez[lmax+1];
while (r){
lmax++;
rez[lmax]=r%10;
r/=10;
}
for (i=lmax;i;i--){
printf("%d",rez[i]);
}
printf("\n");
return 0;
}