繁体   English   中英

递归——Python问题,返回值问题

[英]Recursion - Python question, return value question

**我在解决以下问题时遇到问题。

实现 sum_positive_numbers function,作为递归 function,它返回接收到的数字 n 和 1 之间的所有正数之和。例如,当 n 为 3 时,它应该返回 1+2+3=6,当 n 为 5 时,它应该返回 1+2+3+4+5=15.**

def sum_positive_numbers(n):
    return 0

print(sum_positive_numbers(3)) # Should be 6
print(sum_positive_numbers(5)) # Should be 15

请记住始终添加断开条件。 这种情况下的零评估

def sum_positive_numbers(n):
    if n == 0:
        return n
    return n + sum_positive_numbers(n - 1)
def sum_positive_numbers(n):
    # The base case is n being smaller than 1
    if n < 1:
        return n


    return n + sum_positive_numbers(n - 1)
    # What got me was n - 1. I was using + until I went to the below website to see visualize it

print(sum_positive_numbers(3)) # Should be 6
print(sum_positive_numbers(5)) # Should be 15

这是我用来可视化代码的网站,可以帮助我解决问题。 它迫使我不仅要从谷歌搜索中获得答案,还要解决每个错误,并像我一样学习 go: Python Visualizer

def sum_positive_numbers(n):

if n == 0:
    return n
return n + sum_positive_numbers(n - 1)

print(sum_positive_numbers(3)) # 应该是 6

print(sum_positive_numbers(5)) # 应该是 15

def sum_positive_numbers(n):
    if n < 1:
        return 0

    return n + sum_positive_numbers(n - 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM