#include <iostream>
using namespace std;
void combinari(int r, int A[])
{//folosim formula recursiva a combinarilor C(n)(k) = C(n-1)(k-1)+C(n-1)(k)
int B[33];//tablou temporar pt linia anterioara
A[0]=B[0]=1;//varful este 1
for(int i=1;i<=r;i++)//pe urmatoarele linii
{
for(int j=0;j<=i;j++) //parcurgem linia
{
if(j==0) A[j]=1;//incepe cu 1
else if(i==j) A[j]=1;//se termina cu 1
else A[j]=B[j-1]+B[j];//este suma celor 2 de deasupra
}
for(int j=0;j<=i;j++)
B[j]=A[j];//copiez linia curenta in cea anterioara
}
}
int main()
{
int r=8,A[34];
combinari(r,A);
for(int i=0;i<=r;i++)
cout<<A[i]<<" ";
return 0;
}
|