Pagini recente » Cod sursa (job #1653996) | Cod sursa (job #1034329) | Clasament alex99 | Cod sursa (job #1780794) | Cod sursa (job #204213)
Cod sursa(job #204213)
#include <stdio.h>
#define Nmax 155
#define Lmax 1024
#define BASE 1000000
int n;
int sol[Lmax],sol1[Lmax];
void citire()
{
scanf("%d\n", &n);
}
void init(int H[], unsigned long X) {
H[0] = 0;
while (X) {
++H[0];
H[H[0]] = X % BASE;
X /= BASE;
}
}
void mul2(int A[])
{
int i, t;
for (i = 1, t = 0; i <= A[0] || t; ++i, t /= BASE)
A[i] = (t += 2 * A[i]) % BASE;
A[0] = i - 1;
}
void mul(int A[],int B[])
{
int i, t;
for (i = 1, t = 0; i <= A[0] || i<=B[0]|| t; ++i, t /= BASE)
A[i] = (t += B[i] * A[i]) % BASE;
A[0] = i - 1;
}
void scrie(int A[])
{
int i;
printf("%d", A[A[0]]);
for (i = A[0] - 1; i >= 1; --i)
printf("%.6d", A[i]);
printf("\n");
}
void solve()
{
int i;
init(sol1,n);
sol[0] = sol[1] = 1;
for (i = 1; i <= n*n; ++i)
mul2(sol);
mul(sol,sol1);
scrie(sol);
}
int main()
{
freopen("patrate2.in", "r", stdin);
freopen("patrate2.out", "w", stdout);
citire();
solve();
return 0;
}