Pagini recente » Monitorul de evaluare | Cod sursa (job #209633) | Cod sursa (job #2222148) | Cod sursa (job #669091) | Cod sursa (job #260348)
Cod sursa(job #260348)
#include <stdio.h>
#include <string.h>
#define Lmax 1024
#define BASE 10
//formula este (2^n*n)*n
//unde n<=100
int n;
int sol[Lmax],sol1[Lmax];
void citire()//citesc numarul
{
freopen("patrate2.in","rt",stdin);
scanf("%d\n", &n);
}
void mul2(int A[])//inmultire cu 2
{
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 multiply(int a[], int b)
{
int i=0,t=0;
for (i=1;i<=a[0] || t; ++i, t/=BASE)
a[i]=(t+=a[i]*b)%BASE;
a[0]=i-1;
}
void scrie(int A[])//afisez vectorul
{
int i;
freopen("patrate2.out", "w", stdout);
for (i = A[0]; i; --i)
printf("%d", A[i]);
}
void solve()
{
int i;
//in sol1 l-am initializat pe n
//init(n);
sol[0]=sol[1]=1;
for (i=1;i<=n*n;++i)
mul2(sol);//2^n*n
multiply(sol,n);//inmultesc pe 2^n*n cu n
scrie(sol);//afisez rezultatul
}
int main()
{
citire();
solve();
return 0;
}