Pagini recente » Cod sursa (job #1019254) | Cod sursa (job #972141) | Cod sursa (job #2131419) | Cod sursa (job #1583606) | Cod sursa (job #797216)
Cod sursa(job #797216)
#include<fstream>
using namespace std;
int n;
int sol[1000]; //sol=N!*(2^(N*N))
inline void Inmulteste(int A[],int B)
{
int i,t=0;
for(i=1;i<=A[0] || t;i++,t/=1000000000)
A[i]=(t+=A[i]*B)%1000000000;
A[0]=i-1;
}
inline int NrCif(int x)
{
if(x==0)
return 1;
int rez=0;
while(x)
{
x/=10;
rez++;
}
return rez;
}
int main()
{
ifstream fin("patrate2.in");
fin>>n;
fin.close();
int i,j,nr;
sol[0]=sol[1]=1;
for(i=2;i<=n;i++)
Inmulteste(sol,i);
n=n*n;
for(i=1;i<=n;i++)
Inmulteste(sol,2);
ofstream fout("patrate2.out");
fout<<sol[sol[0]];
for(i=sol[0]-1;i>0;i--)
{
nr=NrCif(sol[i]);
for(j=nr+1;j<=9;j++)
fout<<0;
fout<<sol[i];
}
fout<<"\n";
fout.close();
return 0;
}