仅使用减法和加法的递归除法

时间:2016-04-02 17:13:18

标签: python recursion

我必须编写一个函数,在取两个参数后返回一个除数的商和余数,第一个是一个被除数,第二个除数是递归地从被除数中减去除数。

def recursive_division (a, b, c = 0):
    if b == 0: 
        return ("(Cannot divide by zero)","(Cannot divide by zero)")
    elif a < b:
        return (c,a)
    else:
        return recursive_division (a - b, b, 1 + c)

有没有办法在函数中没有将默认变量c定义为零的情况下找到商...这个函数在定义时只有两个参数,只返回基于a或b的东西? (以下示例)

def recursive division (a, b)
    ...
    return (x, y)

1 个答案:

答案 0 :(得分:1)

是的,您可以通过增加c递归返回的除数来避免使用recursive_division

类似的东西(未经测试):

def recursive_division (a, b):
    if b == 0: 
        return ("(Cannot divide by zero)","(Cannot divide by zero)")
    elif a < b:
        return (0, a)
    else:
        (x, y) = recursive_division (a - b, b)
        return (x+1, y)