Pagini recente » Cod sursa (job #1200773) | Cod sursa (job #475840) | Cod sursa (job #506381) | Borderou de evaluare (job #616615) | Cod sursa (job #765411)
Cod sursa(job #765411)
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int n,n2,i=0,aux;
int *v,*doi,*final;
unsigned long t=0;
v=new int[3000];
doi=new int[3500];
final=new int[3500];
f>>n;
// cout<<"n"<<endl;
// cout<<n<<endl;
n2=n*n;
aux=n;
while(aux>=1)
{
i++;
v[i]=aux%10;
aux=aux/10;
}
v[0]=i;
doi[0]=1;
doi[1]=2;
//n factorial
for(int j=1;j<n;j++)
{
for( i=1;i<=v[0];i++)
{
v[i]=v[i]*j+t;
t=v[i]/10;
v[i]=v[i]%10;
}
while(t)
{
v[++v[0]]=t%10;
t=t/10;
}
}
//doi la n2
t=0;
for(int j=1;j<n2;j++)
{
for( i=1;i<=doi[0];i++)
{
doi[i]=doi[i]*2+t;
t=doi[i]/10;
doi[i]=doi[i]%10;
}
while(t)
{
doi[++doi[0]]=t%10;
t=t/10;
}
}
//afisare n factorial si 2 la n2
//cout<<" v[0] "<<v[0]<<endl;
/////cout<<"produs"<<endl;
/// for(i=1;i<=v[0];i++)
// cout<<v[i];
// cout<<endl<<"doi[0] "<<doi[0]<<endl;
// cout<<"DOi la puterea n2"<<endl;
// for(i=1;i<=doi[0];i++)
// cout<<doi[i];
//inmultire
final[0]=v[0]+doi[0]-1;
for(i=1;i<=doi[0]+v[0];i++)final[i]=0;
for( i=1;i<=doi[0];i++)
for(int j=1;j<=v[0];j++)
final[i+j-1]+=doi[i]*v[j];
for(i=1;i<=final[0];i++)
{
final[i]+=t;
t=final[i]/10;
final[i]=final[i]%10;
}
if(t)final[++final[0]]=t;
// cout<<" final[0] "<<final[0]<<endl;
// cout<<"afisare final "<<endl;
for(i=final[0];i>=1;i--)
g<<final[i];
//cout<<endl;
//rez=pow(2,(double)n2);
//cout<<rez<<endl;
//system("pause");
return 0;
}