Алгоритм подбора чисел, сумма которых равна определенному значению - 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()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д