【发布时间】:2020-02-20 13:44:45
【问题描述】:
问题是将所有从 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)
我想知道这种解决方案如何在没有循环的情况下工作。这对我来说根本没有意义。顺便说一句,我只是一个初学者。
【问题讨论】:
-
这是递归解决方案,在惯用的python中一般会避免
-
使用 (N*(N+1))/2
-
顶级解决方案使用了一个叫做函数递归的东西,基本上你可以初始化一个会一遍又一遍地调用自己的函数
-
另外请考虑使用snake_case代替CamelCase来命名变量和函数
-
哦..我不知道有这样的东西
标签: python