// A naive recursive C++ implementation
#include <bits/stdc++.h>
using namespace std;
// Returns value of Binomial Coefficient C(n, k)
int binomialCoeff(int n, int k)
{
// Base Cases
if (k > n)
return 0;
if (k == 0 || k == n)
return 1;
// Recur
return binomialCoeff(n - 1, k - 1)
+ binomialCoeff(n - 1, k);
}
/* Driver code*/
int main()
{
int n = 5, k = 2;
cout << "Value of C(" << n << ", " << k << ") is "
<< binomialCoeff(n, k);
return 0;
}
Ly8gQSBuYWl2ZSByZWN1cnNpdmUgQysrIGltcGxlbWVudGF0aW9uCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi8vIFJldHVybnMgdmFsdWUgb2YgQmlub21pYWwgQ29lZmZpY2llbnQgQyhuLCBrKQppbnQgYmlub21pYWxDb2VmZihpbnQgbiwgaW50IGspCnsKICAgIC8vIEJhc2UgQ2FzZXMKICAgIGlmIChrID4gbikKICAgICAgICByZXR1cm4gMDsKICAgIGlmIChrID09IDAgfHwgayA9PSBuKQogICAgICAgIHJldHVybiAxOwogCiAgICAvLyBSZWN1cgogICAgcmV0dXJuIGJpbm9taWFsQ29lZmYobiAtIDEsIGsgLSAxKQogICAgICAgICAgICsgYmlub21pYWxDb2VmZihuIC0gMSwgayk7Cn0KIAovKiBEcml2ZXIgY29kZSovCmludCBtYWluKCkKewogICAgaW50IG4gPSA1LCBrID0gMjsKICAgIGNvdXQgPDwgIlZhbHVlIG9mIEMoIiA8PCBuIDw8ICIsICIgPDwgayA8PCAiKSBpcyAiCiAgICAgICAgIDw8IGJpbm9taWFsQ29lZmYobiwgayk7CiAgICByZXR1cm4gMDsKfQog