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

发布于 2024-08-29 06:29:34 字数 144 浏览 5 评论 0原文

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

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

Write a program which, given a list of up to 10 integer numbers and a sum, will display a subset of the numbers whose total is that sum if one exists or indicate that none exists otherwise. For example, for the list: 5,13,24,9,3,3 and sum = 28, your program should display 13, 9, 3, 3.

How to do this in C++ using a recursive function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不及他 2024-09-05 06:29:34

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

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

A recursive function isn't actually the simplest or fastest way to do this, but you can write a function that takes the desired sum and a list of integers.

The function goes through the list one element at a time, and for each element it subtracts it from the current goal value, and recursively calls itself with the new goal and a new list with the currently subtracted element removed. The base case is an empty list and a value. If that value is zero, return true, else return false. Whenever the function returns true, the currently considered element is a value in the solution, so you can output it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文