如何用PYTHON递归算法解决数字相加问题
1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。
2、l = [1, 3, 33, 43, 9]
sum = 0
for i in l:
sum += i
print(sum)
如果用FOR循环的话,可以逐个进行相加。
3、def plus(n):
如果用递归的方式,那么我们可以先定义一个函数。
4、l = [1, 3, 33, 43, 9]
def plus(n):
n = 43
if n in l:
return n + plus(n-1)
设置条件进行递归。
5、l = [1, 3, 33, 43, 9]
def plus(list):
return list[0] + plus(list[1:])
对于列表,实际上这样操作会更好,因为可以每个数的大小排序,每次都调用第一个,不断缩小范围。
6、l = [1, 3, 33, 43, 9]
def plus(list):
if list == []:
return 0
return list[0] + plus(list[1:])
记得要设置暂停的条件。
7、l = [1, 3, 33, 43, 9]
def plus(list):
if list == []:
return 0
return list[0] + plus(list[1:])
plus(l)
运行一下就知道结果是正确的。
8、list[0] + plus(list[1:])
1 + [3, 33, 43, 9]
1 + 3 + [33, 43, 9]
1 + 3 + 33 + [43, 9]
1 + 3 + 33 + 43 + [9]
1 + 3 + 33 + 43 + 9
1 + 3 + 33 + 43 + 9 + 0
89
这个是实际的运算过程。
9、l = [1, 3, 33, 43, -9]
def plus(list):
if list == []:
return 0
return list[0] + plus(list[1:])
plus(l)
测试一下其他的列表也是可以运算的。