Pagini recente » Cod sursa (job #1236494) | Cod sursa (job #2418262) | Cod sursa (job #1325074) | Cod sursa (job #2853913) | Cod sursa (job #397198)
Cod sursa(job #397198)
#include<stdio.h>
void attnr(int h[], int x)
{
h[0]=0;
while(x)
{
h[++h[0]]=x%10;
x/=10;
}
}
void prod(int h[], int g[], int p[])
{
int i,j,trans=0;
p[0]=h[0]+g[0];
for(i=1;i<=h[0]+g[0];i++)p[i]=0;
for(i=1;i<=h[0];i++)
for(j=1;j<=g[0];j++)
p[i+j-1]+=h[i]*g[j];
for(i=1;i<=p[0];i++)
{
p[i]+=trans;
trans=p[i]/10;
p[i]%=10;
}
if(trans)
{
p[0]++;
p[p[0]]=trans;
}
while(p[0]&&!p[p[0]])p[0]--;
}
void attv(int A[], int B[])
{
int i;
A[0]=B[0];
for(i=1;i<=B[0];i++)
A[i]=B[i];
}
int main()
{
int put[5000],v[5000],w[5000],n,nn,i;
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%d",&n);
attnr(put,2);
nn=n*n;
attnr(v,1);
for(i=0;(1<<i)<=nn;i++)
{
if((1<<i)&nn)
{
prod(v,put,w);
attv(v,w);
}
prod(put,put,w);
attv(put,w);
}
for(i=2;i<=n;i++)
{
attnr(put,i);
prod(v,put,w);
attv(v,w);
}
for(i=v[0];i;i--)
printf("%d",v[i]);
return 0;
}