예제 #1
0
        public ulong FindNumberThatIsNotSumOfKPreviousNumbers(IPuzzleSolverDay1 helpingSolver, List <ulong> numbers, int k)
        {
            var summmingNumbers = numbers.Take(k).ToList();

            foreach (var number in numbers.Skip(k))
            {
                var result = helpingSolver.GetNumbersThatSumToN(summmingNumbers, number);
                if (result.Count == 0)
                {
                    return(number);
                }

                summmingNumbers.RemoveAt(0);
                summmingNumbers.Add(number);
            }

            throw new Exception("All numbers are good.");
        }