Алгоритм подбора чисел, сумма которых равна определенному значению - C# (191155)

Узнай цену своей работы

Формулировка задачи:

Есть число из 11 цифр, сума которых известна и равняется х, какой алгоритм нужен чтобы узнать все возможные вариации чисел, заранее спасибо ?

Решение задачи: «Алгоритм подбора чисел, сумма которых равна определенному значению»

textual
Листинг программы
        static void Main(string[] args)
        {
            try
            {
                GetList(11, 30).ForEach(a => Console.WriteLine(string.Join(string.Empty, a)));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            Console.WriteLine("\nComplite");
            Console.ReadKey();
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="countChar">Количество цифр</param>
        /// <param name="sum">Сумма цифр</param>
        /// <returns></returns>
        public static List<int[]> GetList(int countChar, int sum)
        {
            if (countChar < 1)
            {
                throw new ArgumentException("countChar должно бьіть больше нуля и цельім", "countChar");
            }
            var list = new int[countChar];
            var result = new List<int[]>();
            runLine(0, list, sum, result);
            return result;
        }
 
        private static void runLine(int index, int[] list, int sum, List<int[]> result)
        {
            if (index < list.Length)
            {
                for (var i = (index == 0 ? 1 : 0); i < 10; i++)
                // index == 0 ? 1 : 0
                // тернарньій оператор
                // нужен, чтобьі определить первую цифру в последовательности и не задавать ее, как ноль
                {
                    list[index] = i;
                    runLine(index + 1, list, sum, result);
                }
                
            }
            else
            {
                if (list.Sum() == sum)
                    result.Add((int[])list.Clone());
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы