Improved Combinations with the BigInteger Data Type: Listing 1.

Structure of the Combinatorics program.

using System;
using System.Numerics;
namespace Combinatorics
{
  class CombinatoricsProgram
  {
    static void Main(string[] args)
    {
      Console.WriteLine("\nBegin combinations with C# BigInteger demo\n");
      // calling code here
      Console.WriteLine("\nEnd demo\n");
      Console.ReadLine();
    }
  }

  public class Combination
  {
    private int n;
    private int k;
    private int[] data;

    public Combination(int n, int k) { ... }
    public override string ToString() { ... }
    public Combination Successor() { ... }
    public static BigInteger Choose(int n, int k) { ... }
    public Combination Element(BigInteger m) { ... }
    private static int LargestV(int a, int b, BigInteger x) { ... }
    public string[] ApplyTo(string[] a) { ... }
  } // class Combination
} // ns

About the Author

Dr. James McCaffrey works for Microsoft Research in Redmond, WA. James has worked on several key Microsoft products such as Internet Explorer and Bing. James can be reached at jamccaff@microsoft.com.