【发布时间】:2020-06-30 21:36:40
【问题描述】:
我有一个学校的递归回溯问题,我不明白该如何解决。
给定一个整数数组,确定是否有可能选择一组与特定总和相加的整数。使用称为sum_to_total 的递归方法来解决问题(没有循环!)。
例子:
- “数组
[3, 6, 7]”和“Sum 10”返回真,因为3 + 7 = 10 - “数组
[1, 2, 3]”和“Sum 6”返回真,因为1 + 2 + 3 = 6 - “数组
[2, 4, 6]”和“sum 5”返回false,因为这些数字的组合不等于5
这是我目前得到的:
def self.sum_to_total(sum, array, index)
@@sum_num += array[index]
return false if @@sum_num > sum || @@sum_num < sum
return false if index<board.length || index<0
return true if @@sum_num == sum
return solvable(sum, array, index+1)
end
@@sum_num = 0
puts sum_to_total(10, [3, 5, 7], 0)
一些建议会有所帮助。
【问题讨论】:
-
当系统因为标题不好而阻止您提交问题时,请不要在其末尾添加“(Ruby)”以通过过滤器。这就是标签的用途。 *.com/help/how-to-ask 中有一个关于写标题的部分;我建议阅读它,然后回来并让您的问题标题更具描述性。
-
欢迎来到 SO!请阅读“How do I ask and answer homework questions?”和“How do I format my posts...”以及“How do I format my code blocks?”。您要求我们努力帮助您;我们要求您努力提出一个问得很好的问题。语法和正确的格式对 SO 很重要。
-
请阅读“MCVE”。您的代码不符合准则,因为未定义
solvable。
标签: ruby recursion recursive-backtracking