如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。
# 求阶乘
def fact(x):
if x == 1:
return 1
return x * fact(x - 1)
# 计算列表各元素的和
def my_sum(arr):
if not arr:
return 0
if len(arr) == 1:
return arr[0]
return arr[0] + sum(arr[1:])
# 计算列表包含的元素个数
def count(arr):
if not arr:
return 0
if len(arr) == 1:
return 1
return 1 + count(arr[1:])
# 查找列表中最大的数
def max_num(arr):
if not arr:
return None
if len(arr) == 1:
return arr[0]
if len(arr) == 2:
return arr[0] if arr[0] > arr[1] else arr[1]
sub_max = max_num(arr[1:])
return arr[0] if arr[0] > sub_max else sub_max
if __name__ == '__main__':
target_arr = [1, 3]
print(max_num(target_arr))