home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / advfun6.cpp < prev    next >
C/C++ Source or Header  |  1993-03-31  |  1KB  |  49 lines

  1. // C++ program which uses a recursive function
  2.  
  3. #include <iostream.h>
  4.    
  5. const int MIN = 4;
  6. const int MAX = 30;   
  7.    
  8. double factorial(int i)
  9. {
  10.   if (i > 1)
  11.     return double(i) * factorial(i - 1);
  12.   else
  13.     return 1;
  14. }
  15.   
  16. double permutation(int m, int n)
  17. {
  18.   return factorial(m) / factorial(m - n);
  19. }                                        
  20.  
  21. double combination(int m, int n)
  22. {
  23.   return permutation(m, n) / factorial(n);
  24. }                  
  25.   
  26. main()
  27. {       
  28.   int m, n;
  29.   
  30.   do {                 
  31.     cout << "Enter an integer between "
  32.          << MIN << " and " << MAX << " : ";
  33.     cin >> m;
  34.   } while (m < MIN || m > MAX);
  35.  
  36.   do {                 
  37.     cout << "Enter an integer between "
  38.          << MIN << " and " << m << " : ";
  39.     cin >> n;
  40.   } while (n < MIN || n > m);
  41.   
  42.   cout << "Permutations(" << m << ", " << n 
  43.        << ") = " << permutation(m, n) << "\n";
  44.   cout << "Combinations(" << m << ", " << n 
  45.        << ") = " << combination(m, n) << "\n";
  46.   
  47.   return 0;
  48. }
  49.