Pagini recente » Cod sursa (job #1250910) | Cod sursa (job #506170) | Cod sursa (job #3262560) | Cod sursa (job #468193) | Cod sursa (job #909680)
Cod sursa(job #909680)
#include<iostream>
#include<fstream>
#include <cstdio>
using namespace std;
ifstream fin("patrate2.in");
FILE *g=fopen("patrate2.out","w");
int N;
struct nr_mare
{
int cif[10000],nc;
nr_mare operator=(int b)
{
nc=0;
while(b)
{
cif[nc++]=b%10;
b/=10;
}
return *this;
}
friend nr_mare operator*(nr_mare a,int b);
friend ostream& operator<<(ostream &out,nr_mare &n);
};
ostream& operator<<(ostream &out,nr_mare &n)
{
int i=n.cif[0];
while(i)
out<<n.cif[i--];
return out;
}
nr_mare operator*(nr_mare a,int b)
{
int carry=0;
for(int i=1;i<=a.cif[0];i++)
{
int y=a.cif[i]*b+carry;
a.cif[i]=y%10;
carry=y/10;
}
while(carry>0)
{
++a.cif[0];
a.cif[a.cif[0]]=carry%10;
carry=carry/10;
}
return a;
}
nr_mare nr;
int main()
{
fin>>N;
nr=11;
int a=(N*N)/15,b=(N*N)%15,i;
for(i=1;i<=a;i++)
nr=nr*(1<<15);
nr=nr*(1<<b);
for(i=1;i<=N;i++)
nr=nr*i;
for(i=nr.cif[0];i>0;i--)
fprintf(g,"%d",nr.cif[i]);
return 0;
}