Pagini recente » Cod sursa (job #648005) | Cod sursa (job #2363167) | Cod sursa (job #2628785) | Cod sursa (job #1087119) | Cod sursa (job #189365)
Cod sursa(job #189365)
#include<stdio.h>
#include<string.h>
char rez[3200],v[3200];
void prod(char x[],long b){
long r,i,carry=0,uc;
char ip[40];
for(i=0;i<40;i++) ip[i]=0;
int l=strlen(x);
for(i=0;i<l;i++){
r=x[i]-48;
r=r*b+carry;
carry=r/10;
uc=r%10;
rez[i]=uc+48;
}
if(carry){
sprintf(ip,"%ld",carry);
strrev(ip);
strcpy(rez+l,ip); }
//strrev(rez);
strcpy(x,rez);
}
int main(){
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
int n,i,n2;
unsigned long long r=1L,p2=1,f=1L;
long double x=1;
long p[32],y,z;
//char v[3200]={0};
v[0]=49;
scanf("%d",&n);
n2=n*n;
p[0]=1;
for(i=1;i<=31;i++) p[i]=p[i-1]*2;
if(n<8){
for(i=2;i<=n;i++) f=f*i;
for(i=1;i<=n2;i++) p2=p2*2;
r=f*p2;
printf("%llu",r);
}
else{
y=n2;
do {
if(y>=27) z=27;
else z=y;
prod(v,p[z]);
y-=z;
}while(y);
for(i=2;i<=n;i++) prod(v,i);
strrev(v);
printf("%s",v);
}
return 0;
}