Pagini recente » Cod sursa (job #1358747) | Cod sursa (job #1812244) | Cod sursa (job #1790260) | Cod sursa (job #2572275) | Cod sursa (job #227261)
Cod sursa(job #227261)
#include<stdio.h>
int N,J,A[10000000],M,Z;
void inmulteste(int k,int l)
{
int d=0,r=0;
for (int i=1; i<=J; ++i)
{
d=A[i]*k+r;
r=d / 10;
if (l!=0) A[i+l]+=d % 10;
else A[i]=d%10;
}
if (r!=0) {++J; A[J]+=r;}
}
int main()
{
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%d",&N);
M=N*N;
A[1]=1;J=1;
for (int i=1; i<=M; ++i)
{
inmulteste(2,0);
}
for (int i=2; i<=N; ++i)
{
int d=i, l=0, t=i;
while (d / 10> 0)
{
t= t % 10;
if (d!=i) ++l;
if (t!=0) inmulteste (t,l);
else ++Z;
d=d / 10;
}
if (d!=i) ++l;
inmulteste(t%10, l);
}
for (int i=J; i>=1; --i)
printf("%d", A[i]);
for (int i=1; i<=Z; ++i)
printf("%d", 0);
return 0;
}