《算法图解》第四章课后作业

可做参考 https://www.cnblogs.com/OctoptusLian/p/9029492.html

https://www.cnblogs.com/NEWzyz/p/8917660.html

4.1 分而治之  

练习4.1 请编写前述sum函数的代码

def abb(arr):
    # if len(arr) == 1 :
    #     return arr[0]
    if arr==[]:
        return 0
    else:
        print("hello world")
        return arr[0]+abb(arr[1:])

print(abb([1,2,3]))

《算法图解》第四章课后作业_第1张图片

 

4.2

def list_len(arr):
    if arr==[]:
        return 0
    else:
        return 1+list_len(arr[1:])

4.3

def max_list(arr):
    if len(arr)==1:
        return arr[0]
    else:
        b=max_list(arr[1:])
        if arr[0]>b:
            return arr[0]
        else:
            return b
print(max_list([2,3,4,56,7]))

4.4 基线条件是 列表中只剩一个元素

递归条件是把已有列表分一半 直至达到基线条件

 

你可能感兴趣的:(《算法图解》第四章课后作业)