小编Mat*_*tus的帖子

python中非常基本的递归

我有一个我无法真正解决的问题,我想是因为我不太了解递归......但我有这个功能需要实现。

def elements(num, multiplier, add, limiter) -> List[int]:
Run Code Online (Sandbox Code Playgroud)

num 是一个数字,您乘以乘数,然后加上数字 add...然后您将追加数字 num 直到它大于限制器。

例如

(5, 3, 1, 20) will give [5, 16] 
(5, 3, 1, 5) will give []
(4, -2, -2, 74) will give [4, -10, 18, -38]
Run Code Online (Sandbox Code Playgroud)

我不能使用任何循环,所以没有 for cycle 或 while 循环......或任何包含循环的东西(总和,最小值,最大值......等等)

我写了这个,我知道这很愚蠢,但我真的不明白递归是如何工作的……这就是我来这里的原因,因为我从代码中学到了最好的东西

def first_elements(first, multiplier, addend, limit):
    result = []
    if first > limit:
        return []
    multiplied,_,_,_ = first_elements(first * multiplier + addend, multiplier, addend, limit)
    if multiplied > limit:
        return []
    result.append(first)
    result.append(multiplied)
Run Code Online (Sandbox Code Playgroud)

python recursion list

0
推荐指数
1
解决办法
84
查看次数

标签 统计

list ×1

python ×1

recursion ×1