编写一个程序,给定一个最多10个整数和一个总和的列表,将显示一个数字的子集,如果存在,则总和是该总和,否则表示不存在。例如,对于列表:5,13,24,9,3,3和sum = 28,您的程序应显示13,9,3,3。
如何使用递归函数在C ++中执行此操作?
答案 0 :(得分:1)
递归函数实际上并不是最简单或最快速的方法,但您可以编写一个函数来获取所需的和和整数列表。
该函数一次遍历列表一个元素,并且对于每个元素,它从当前目标值中减去它,并使用新目标递归调用自身,并删除当前减去元素的新列表。基本情况是一个空列表和一个值。如果该值为零,则返回true,否则返回false。只要函数返回true,当前考虑的元素就是解决方案中的值,因此您可以输出它。