Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Combinations.cpp

DZone's Guide to

Combinations.cpp

·
Free Resource
#include 
 
  

using namespace std;

double factorial(long n)
{
 if (n==0)
   return 1;
 else
   return n*factorial(n-1);
}

double combination_0(int n, int k)
{
      return factorial(n)/factorial(n-k)/factorial(k);
}

double combination_1(int n, int k)
{
       double result = 1;
       while(k > 0)
       {
         result *= (double)(n--);
         result /= (double)(k--);
       } 
       return result;
}

double combination_r(int n, int k)
{
    if (k == 0)
      return 1;
    else
      return ((double)n/(double)k)*combination_r(n-1, k-1);
}

double power (int n, double p)
{
       if (n==0)
          return 1;
       else
       return p*power(n-1,p);
}

double binomial (int n, int k, double p)
{
       return combination_r(n,k)*power(k,p)*power(n-k,1-p);
}

double pi (int n)
{
       if(n==0)
         return 4;
       else
         if (n%2 == 0)
            return pi(n-1) + 4/(double)(2*n+1);
         else
            return pi(n-1) - 4/(double)(2*n+1);
}

main (void)
{
 int i;
 for (i=0; i<5; i++)
     cout << i << "! = " << factorial(i) << endl;
 cout << endl;
 cout << (int)combination_0(52,5) << endl;
 cout << (int)combination_1(52,5) << endl;
 cout << (int)combination_r(52,5) << endl << endl;
 cout << power(2,0.5) << endl;
 cout << binomial(3,2,0.5) << endl;
 for (i=0; i<1000200; i++)
   cout << i << " places " << pi(i) << endl;
 getchar();
}

 
Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}