当前位置:  开发笔记 > 后端 > 正文

使用递归方法在两个数字之间求和

如何解决《使用递归方法在两个数字之间求和》经验,为你挑选了1个好方法。

我想用递归方法求和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

我会使用一个计数器,但为此我需要创建一个变量,每次函数调用自身时都会重置为其原始值.

有没有办法做到这一点 ?或者以不同的方式组织方法?



1> Linuxios..:

这应该给出正确的答案:

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))

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有