Pagini recente » Cod sursa (job #2543663) | Cod sursa (job #16497) | Cod sursa (job #436666) | Cod sursa (job #2353166) | Cod sursa (job #524381)
Cod sursa(job #524381)
# include <fstream>
# include <iostream>
# define DIM 300
# define BB 10
using namespace std;
int n, sol[DIM], rez[DIM];
void inm(int A[], int b)
{
int q, t=0;
for(int i=1;i<=A[0];++i)
{
q=A[i]*b+t;
A[i]=q%10;
t=q/10;
}
while (t)
{
A[++A[0]]=t%10;
t/=10;
}
}
void add(int a[], int b[])
{
int N;
if(a[0]<b[0])
{
for(int i=a[0]+1;i<=b[0];++i)
a[i]=0;
N=b[0];
}
else
{
for(int i=b[0]+1;i<=a[0];++i)
b[i]=0;
N=a[0];
}
int q, t=0;
for(int i=1;i<=N;++i)
{
q=a[i]+b[i]+t;
a[i]=q%10;
t=q/10;
}
a[0]=N;
while (t)
{
a[++a[0]]=t%10;
t/=10;
}
}
void calc (int a, int b)
{
int p=1, j=2, i=a+1;
rez[0]=rez[1]=1;
for(;j<=b && i<=a+b;++i)
{
p*=i;
while(j<=b && p%j==0)
p/=j, ++j;
}
inm(rez,p);
for(;i<=a+b;++i)
inm(rez, i);
add(sol, rez);
}
int main ()
{
ifstream fin ("nunta.in");
ofstream fout ("nunta.out");
fin>>n;
sol[0]=1;sol[1]=0;
for(int i=0;2*i<=n;++i)
calc(i, n-2*i);
for(int i=sol[0];i;--i)
fout<<sol[i];
return 0;
}