给定一个最多10个整数和一个和的列表,将显示其总和为该总和的数字的子集

时间:2010-04-20 21:22:14

标签: numbers integer sum

编写一个程序,给定一个最多10个整数和一个总和的列表,将显示一个数字的子集,如果存在,则总和是该总和,否则表示不存在。例如,对于列表:5,13,​​24,9,3,3和sum = 28,您的程序应显示13,9,3,3。

如何使用递归函数在C ++中执行此操作?

1 个答案:

答案 0 :(得分:1)

递归函数实际上并不是最简单或最快速的方法,但您可以编写一个函数来获取所需的和和整数列表。

该函数一次遍历列表一个元素,并且对于每个元素,它从当前目标值中减去它,并使用新目标递归调用自身,并删除当前减去元素的新列表。基本情况是一个空列表和一个值。如果该值为零,则返回true,否则返回false。只要函数返回true,当前考虑的元素就是解决方案中的值,因此您可以输出它。