Pagini recente » Cod sursa (job #2332382) | Cod sursa (job #3195887) | Cod sursa (job #2990852) | Cod sursa (job #2079666) | Cod sursa (job #741546)
Cod sursa(job #741546)
#include <fstream>
using namespace std;
fstream fin("patrate2.in",ios::in);
fstream fout("patrate2.out",ios::out);
int c,n,aux,vp[50000],vf[50000],i,j,t,k,l,vr[50000],x;
int main(){
fin>>n;k=1;vf[1]=1;
for(i=2;i<=n;i++){
for(j=1;j<=k;j++){
vf[j]=vf[j]*i+t;
t=vf[j]/10;
vf[j]=vf[j]%10;
}
while(t){
k++;vf[k]=t%10;
t/=10;
}
}
vp[1]=1;l=k;k=1;n=n*n;
for(i=1;i<=n;i++){
for(j=1;j<=k;j++){
vp[j]=vp[j]*2+t;
t=vp[j]/10;
vp[j]=vp[j]%10;
}
while(t){
k++;vp[k]=t%10;
t/=10;
}
}
// memset(vr,sizeof(vr),0);
for(i=1;i<=l;i++){
for(j=1;j<=k;j++){
vr[j+i-1]+=vp[j]*vf[i]+t;
t=vr[j+i-1]/10;
vr[j+i-1]%=10;
}
while(t){
vr[j+i-1]+=t;
t=vr[j+i-1]/10;
vr[i+j-1]%=10;
j++;
}
if(aux<j)aux=j;
}
if(vr[k+l]) fout<<vr[k+l];
for(i=k+l-1;i>0;i--) fout<<vr[i];
//fout<<endl<<vr[1];
fin.close();fout.close();
return 0;
}