Pagini recente » Cod sursa (job #184818) | Cod sursa (job #1541146) | Cod sursa (job #1867746) | Cod sursa (job #25769) | Cod sursa (job #72694)
Cod sursa(job #72694)
#include<fstream.h>
long a[1000],b[1000],c[1000],N,nr,nr1;
void egalite(long nr){
for (long i=0;i<nr+30;i++)
b[i]=c[i];
}
void inmultire(){
for (long ww=0;ww<nr+nr1+3;ww++)
c[ww]=0;
for (long i=0;i<nr1;i++){
int t=0;
for (long j=0;j<nr;j++){
c[j+i]+=b[j]*a[i]+t;
t=c[j+i]/10;
c[j+i]=c[j+i]%10;}
if (t>0)
c[nr++]=t; }
}
int main(){
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
fin>>N;
b[0]=2;
nr=1;
for (long i=0;i<N*N-1;i++){
int t=0;
for (long j=0;j<nr;j++){
b[j]=2*b[j]+t;
t=b[j]/10;
b[j]=b[j]%10;}
if (t>0){
b[nr]=t;
nr++;}}
a[0]=2;
nr1=0;
for (int y=2;y<=N;y++){
long x=y;
nr1=0;
while (x>0){
a[nr1++]=x%10;
x/=10;}
inmultire();
egalite(nr);
}
long g=nr*2+1;
while (c[g]==0)
g--;
for (long p=g;p>=0;p--)
fout<<b[p];
fout<<"\n";
fin.close();
fout.close();
return 0;
}