Pagini recente » Clasament test_9_17_10 | Cod sursa (job #1330150) | Cod sursa (job #1544991) | Cod sursa (job #2183005) | Cod sursa (job #3251364)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
const int NMAX=1e3;
int n, d, v[NMAX][NMAX];
void sum (int x)
{
int i=1, t=0;
while (i<=v[x][0] || i<=v[x-1][0] || t)
{
t+=v[x][i]+v[x-1][i];
v[x][i]=t%10;
t/=10;
i++;
}
v[x][0]=i-1;
}
void pascal (int n)
{
v[0][0]=v[0][1]=1;
for (int i=1; i<=n; i++)
{
v[0][0]=v[0][1]=1;
v[i][0]=v[i][1]=1;
for (int j=i-1; j>=1; j--)
sum(j);
}
}
bool verif (int x, int b)
{
int i=v[x][0], r=0;
while (i)
{
r=r*10+v[x][i];
v[x][i]=r/b;
r%=b;
i--;
}
if (r==0)
return true;
return false;
}
void solve ()
{
int nr=0;
for (int i=0; i<=n; i++)
{
if (verif(i,d))
nr++;
}
fout << nr;
}
int main()
{
fin >> n >> d;
pascal(n);
solve();
return 0;
}