这个Python Coderbyte函数是如何工作的?

2024-04-26 07:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是把从1到num的所有数字相加。例如:如果输入是4,那么你的程序应该返回10,因为1+2+3+4=10

这就是我的解决方案

def SimpleAdding(num):
  total = []
  for i in range(1,num+1):
    total.append(i)

 return sum(total)

这就是问题的最佳解决方案

def SimpleAdding(num): 
    if num == 1:
      return 1
    else:
      return num + SimpleAdding(num-1)

我想知道这种解决方案是如何在没有循环的情况下工作的。这对我一点意义都没有。顺便说一句,我只是个初学者


Tags: in程序forreturnifdefrange数字
1条回答
网友
1楼 · 发布于 2024-04-26 07:18:06

这是图表

enter image description here

定义简单化(num): 如果num==1: 返回1 其他: return num+simpleading(num-1)

这是递归

对于simpledding(5),这种情况正在发生:

1. 5 + SimpleAdding(4)
2. 5 + 4+ SimpleAdding(3) # recall again as no exit condition meet
3. 5+ 4+ 3 + SimpleAdding(2)
4. 5 + 4+ 3+ 2+ SimpleAdding(1)
5. 5+ 4 + 3+ 2+ 1 # finally giving 1 

相关问题 更多 >