递归是一种算法,它通过将问题拆分成更小的子问题来求解问题本身。加法和乘法也可以使用递归来实现。下面是两个示例函数:
def recursive_addition(a, b):
if b == 0:
return a
else:
return recursive_addition(a + 1, b - 1)
def recursive_multiplication(a, b):
if b == 1:
return a
elif b % 2 == 0:
return recursive_multiplication(a * 2, b // 2)
else:
return a + recursive_multiplication(a * 2, b // 2)
在这两个函数中,都使用了递归来解决加法和乘法问题。递归加法函数中,每次将第二个数减1,同时将第一个数加1,直到第二个数为0。递归乘法函数中,则将第一个数翻倍,同时将第二个数减半,直到第二个数为1。如果第二个数为偶数,递归乘法函数会将问题拆分成两个等效的子问题,然后将两个子问题的结果相乘。如果第二个数为奇数,则将问题拆分成两个不等的子问题,其中一个子问题为较小的递归乘法,另一个子问题为将第一个数加到另一个子问题的结果中。