При наличии списка из 10 целых чисел и суммы будет отображаться подмножество чисел, сумма которых равна этой сумме. - PullRequest
0 голосов
/ 21 апреля 2010

Напишите программу, которая, учитывая список из 10 целых чисел и сумму, будет отображать подмножество чисел, сумма которых равна этой сумме, если таковая существует, или указывать, что ни один не существует в противном случае. Например, для списка: 5,13,24,9,3,3 и сумма = 28 ваша программа должна отображать 13, 9, 3, 3.

Как это сделать в C ++ с помощью рекурсивной функции?

1 Ответ

1 голос
/ 21 апреля 2010

Рекурсивная функция на самом деле не самый простой или быстрый способ сделать это, но вы можете написать функцию, которая принимает желаемую сумму и список целых чисел.

Функция просматривает список по одному элементу за раз, и для каждого элемента вычитает его из текущего значения цели и рекурсивно вызывает себя с новой целью и новым списком с удаленным в данный момент вычитаемым элементом. Базовый случай - это пустой список и значение. Если это значение равно нулю, вернуть true, иначе вернуть false. Всякий раз, когда функция возвращает значение true, рассматриваемый в настоящее время элемент является значением в решении, поэтому вы можете вывести его.

...