gpt4 book ai didi

python - 计算 1 到 n 之和的递归函数?

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:07 24 4
gpt4 key购买 nike

这是我得到的,但我不确定为什么它不起作用:

def sum(n):
if n > 0:
print(n)
return sum(n) + sum(n-1)
else:
print("done doodly")

number = int(input(": "))
sum(number)

例如,如果用户输入 5,我希望程序计算 5+4+3+2+1 的总和。我做错了什么?


对于此问题的非递归 版本,请参阅 Sum of the integers from 1 to n

最佳答案

两件事:

  • 在计算nsum 时调用sum(n) 对您没有多大好处,因为您将无限期递归。所以 return sum(n)+sum(n-1) 这行是不正确的;它需要是 n 加上 n - 1 其他值的总和。这也是有道理的,因为这就是您要计算的内容。
  • 您需要为基本情况和递归情况返回一个值。

因此,您可以将代码简化为:

def sum(n):
if n == 0:
return 0
return n + sum(n - 1)

关于python - 计算 1 到 n 之和的递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com