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

问题描述:

我在做考试练习,其中一个问题要求您创建一个名为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;博士如何改变鸿沟我while循环(A,b)用减法,而不是分裂

好了,所以这里的关键是要认识到,商是多少次,你可以均匀地减去你的除数,而重新维德是剩下的。 所以:

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

谢谢!我想我以前做过类似的事情,但是它不起作用,所以我放弃了它。另外,[商= 0:]结尾处的冒号是否意味着在那里?它显示为我的语法错误,但没有它的代码工作正常。 – Moca

+0

糟糕!那只是一个错字;) – Hallsville3