我想用递归方法对min和max之间的所有整数求和。示例:min = 1, max= 5, sum = 1 + 2 + 3 + 4 + 5
我的问题是我无法找到如何停止"循环"由递归创建:
def sum_recursive(min, max)
return min if #I don't know how to stop it
min += (min + 1)
sum_recursive(min, max)
end
我会使用一个计数器,但为此我需要创建一个变量,每次该函数调用自身时,该变量将被重置为其原始值。
有办法做到这一点吗?或者以不同的方式组织方法?
答案 0 :(得分:6)
这应该给出正确答案:
def sum_recursive(min, max)
return min if min == max
min + sum_recursive(min + 1, max)
end
这个过程很简单:
sum_recursive(1, 3)
→1 + sum_recursive(2, 3)
→1 + (2 + sum_recursive(3, 3))
→1 + (2 + (3))