ApproximateFraction.Program.GetApproximateFraction C# (CSharp) Method

GetApproximateFraction() private static method

private static GetApproximateFraction ( decimal number, int max, int &numerator, int &denominator ) : void
number decimal
max int
numerator int
denominator int
return void
        private static void GetApproximateFraction(decimal number, int max, out int numerator, out int denominator)
        {
            int a = 0, b = 0;
            decimal min = decimal.MaxValue;

            for (int i = 0; i < max; i++)
            {
                if (i % 1000 == 0)
                {
                    Console.Title = string.Format("{0}", i);
                }

                for (int j = 0; j <= i; j++)
                {
                    a = j + 1;
                    b = i - j + 1;

                    if (GCD(a, b) == 1)
                    {
                        decimal t = (NumberLength(a) + NumberLength(b)) * Math.Abs((decimal)a / b - number);
                        if (t < min)
                        {
                            min = t;
                            Console.WriteLine("{0} / {1}", a, b);
                        }
                    }
                }
            }
            numerator = a;
            denominator = b;
        }