Pagini recente » Cod sursa (job #588033) | Cod sursa (job #1391628) | Cod sursa (job #1873050) | Cod sursa (job #3255806) | Cod sursa (job #868497)
Cod sursa(job #868497)
#include<cstdio>
#include<cstring>
using namespace std;
int c[20000];
void mul(int*a,int*b)
{
memset(c,0,80000);
int i,j,t;
for(i=1;i<=a[0];++i)
{
for(j=1,t=0;j<=b[0]||t;++j,t/=10)
c[i+j-1]=(t+=a[i]*b[j]+c[i+j-1])%10;
if(i+j-2>c[0])
c[0]=i+j-2;
}
memcpy(a,c,80000);
}
int main()
{
freopen("patrate2.in","r",stdin);freopen("patrate2.out","w",stdout);
int n,i,a[20000]={1,1},b[20000],aux,d[20000]={1,1};
scanf("%d",&n);
for(i=2;i<=n;++i)
{
aux=i;b[0]=0;
while(aux)
++b[0],b[b[0]]=aux%10,aux/=10;
mul(a,b);
}
b[0]=1;b[1]=2;
n*=n;
for(;n!=1;n>>=1)
{
if(n&1)
mul(d,b);
mul(b,b);
}
mul(b,d);
mul(a,b);
for(i=a[0];i>=1;--i)
printf("%d",a[i]);
}