我知道有更简单的方法可以创建一个函数,它可以为您提供数字列表中最大的数字,但我想使用递归。当我称该功能为最大时,我什么也没有。例如 best([1,3,2]) 没有给我。如果列表中只有两个元素,我会得到正确的答案,所以我知道问题一定出在调用自身的函数上。不知道为什么。
def compare(a,b):
if a==b:
return a
if a > b:
return a
if a < b:
return b
def greatest(x):
if len(x)==0:
return 0
i=0
new_list=[]
while i< len(x):
if len(x)-i>1:
c=compare(x[i],x[i+1])
else:
c=x[i]
new_list.append(c)
i=i+2
if len(new_list)>1:
greatest(new_list)
else:
return new_list[0]
print greatest([1,3,2])