Pagini recente » Cod sursa (job #2722900) | Cod sursa (job #2337179) | Cod sursa (job #2726839) | Cod sursa (job #695923) | Cod sursa (job #1505653)
#include <iostream>
#include <fstream>
#define nmax 4001
using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
struct nrmare
{
int nr;
char s[nmax];
};
void init(nrmare &a,int x)
{int i;
for(i=0;i<nmax;i++)a.s[i]=0;
a.nr=0;
do{
a.nr++;
a.s[a.nr-1]=x%10;
x=x/10;
}while(x);
}
void afisare(nrmare a)
{int i;
for(i=a.nr-1;i>=0;i--)
fout<<int(a.s[i]);
}
void inmultire(nrmare &a,nrmare b)
{int i,j,t,val;
nrmare p;
init(p,0);
for(i=0;i<a.nr;i++)
{for(t=j=0;j<b.nr;j++)
{val=p.s[i+j]+t+a.s[i]*b.s[j];
p.s[i+j]=val%10;
t=val/10;}
if(t)p.s[i+j]=t;
}
p.nr=a.nr+b.nr-1;
if(p.s[p.nr])p.nr++;
a.nr=p.nr;
for(i=0;i<p.nr;i++)a.s[i]=p.s[i];
}
int main()
{int n,i;
fin>>n;
nrmare a,b,c,d;
init(a,1);
for(i=1;i<=n;i++)
{init(b,i); inmultire(a,b);}
init(b,2);
for(i=1;i<=n*n;i++)
inmultire(a,b);
afisare(a);
}