Pagini recente » Cod sursa (job #2886726) | Cod sursa (job #2985400) | Cod sursa (job #1849771) | Cod sursa (job #1178342) | Cod sursa (job #1392269)
#include <fstream>
#include <string.h>
#define NMAX 10000
using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
int REZ[NMAX];
// Inmultirea unui nr mare cu nr mare
void mul(int A[], int B[])
{
int i,j,t,C[NMAX];
memset(C,0,sizeof(C));
for(i=1; i<=A[0]; ++i)
{
for(t=0, j=1; j<=B[0] || t; j++, t/=10)
C[i+j-1]=(t+=C[i+j-1]+A[i]*B[j])%10;
if(i+j-2>C[0]) C[0]=i+j-2;
}
memcpy(A,C,sizeof(C));
}
// Inmultirea nr mare cu nr mic
void mul(int A[], int B)
{
int i,t = 0;
for(i = 1; i<=A[0] || t; i++, t/=10)
A[i]= (t += A[i]*B) % 10;
A[0]=i-1;
}
int main() {
int n;
fin>>n;
REZ[0]=REZ[1]=1;
for(int i=1; i<=n; ++i)
mul(REZ, i);
for(int i=1; i<=n*n; ++i)
mul(REZ, 2);
for(int i=REZ[0]; i>0; --i)
fout<<REZ[i];
return 0;
}