我知道有更简单的方法来创建一个函数,它给你一个数字列表中最大的数字,但是我想使用递归。当我把这个函数称为最伟大的函数时,我没有得到任何结果。例如,grest([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])
简单的递归可以如下所示:
这条线:
调用
^{pr2}$greatest
,但不处理它返回的值。你想要吗修复后,您的函数似乎正常工作(尽管我没有仔细观察):
相关问题 更多 >
编程相关推荐