Example #1
0
        /// <summary>
        /// https://projecteuler.net/problem=53
        /// </summary>
        /// <param name="arguments"></param>
        /// <returns></returns>
        public static Result CombinatoricSelections(Problem arguments)
        {
            var limit = arguments.IntNumber;
            var count = 0;


            //todo: use factaorial in loop and cache it in array

            for (int n = 1; n <= 100; n++)
            {
                for (int r = 1; r < n; r++)
                {
                    if (UtilityMath.BinomialCoefficients(n, r) >= limit)
                    {
                        count++;
                    }
                }
            }
            var answer  = count.ToString();
            var message = string.Format("{0} not necessarily distinct, values of  nCr, for 1 ≤ n ≤ 100, are greater than {1}.", answer, limit);

            if (Answers[arguments.Id] != answer)
            {
                message += string.Format(" => INCORRECT ({0})", Answers[arguments.Id]);
            }
            var result = new Result(arguments.Id, message)
            {
                Answer = answer
            };

            return(result);
        }