我想用递归方法求和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
我会使用一个计数器,但为此我需要创建一个变量,每次函数调用自身时都会重置为其原始值.
有没有办法做到这一点 ?或者以不同的方式组织方法?
这应该给出正确的答案:
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))