除法使用循环和减法返回商和余数?

时间:2017-10-14 20:48:17

标签: python python-3.x loops while-loop division

我正在做考试练习,其中一个问题要求你创建一个名为divide(a,b)的函数来计算两个参数的商和余数,并返回两个结果。你不能使用内置除法运算符或模运算符,并且必须使用循环来重复调用减法函数(在上一步活动中创建的函数。我基本上弄明白了如何确定商和余数,但是我不知道如何在循环中使用仅减法加法来进行除法。这是我到目前为止的代码(注意:a / b的输入是单独完成的,这只是函数) :

def add(a,b):
    return(a + b)

def subtract(a,b):
    return(a - b)

def divide(a,b):
    c = 0
    d = 0
    while add(d, b) <= a:
        c = add(c, 1)
        d = add(d, b)

    sub = multiply(b,c)    
    rem = subtract(a,sub)

    return(c,rem)

tl; dr怎么能改变我在while(a,b)中的while循环来使用减法而不是除法?

1 个答案:

答案 0 :(得分:2)

好的,所以这里的关键是要认识到商是你可以均匀地减去你的除数的次数,而余数是剩下的。 所以:

def divide(a, b):
    quotient = 0
    while a>b:
        quotient = add(quotient, 1)
        a = subtract(a,b)
    return (quotient, a)