使用循环和减法返回商和余数的除法?
Division returning quotient and remainder using a loop and subtraction?
我正在做考试练习,其中一个问题要求您创建一个名为 divide(a,b) 的函数来计算两个参数的商和余数以及 returns 两个结果。您不能使用内置的除法运算符或模运算符,而必须使用循环来重复调用减法函数(在 [=16= 的前一步中创建的函数)。我基本上已经弄清楚了如何确定商和余数,但我无法弄清楚如何仅使用减法加法在循环中进行除法。这是我到目前为止的代码(注意: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 如何改变 divide(a,b) 中的 while 循环以使用减法而不是除法?
好的,所以这里的关键是要认识到商是你可以平均减去除数的次数,而余数是剩下的。
所以:
def divide(a, b):
quotient = 0
while a>b:
quotient = add(quotient, 1)
a = subtract(a,b)
return (quotient, a)
我正在做考试练习,其中一个问题要求您创建一个名为 divide(a,b) 的函数来计算两个参数的商和余数以及 returns 两个结果。您不能使用内置的除法运算符或模运算符,而必须使用循环来重复调用减法函数(在 [=16= 的前一步中创建的函数)。我基本上已经弄清楚了如何确定商和余数,但我无法弄清楚如何仅使用减法加法在循环中进行除法。这是我到目前为止的代码(注意: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 如何改变 divide(a,b) 中的 while 循环以使用减法而不是除法?
好的,所以这里的关键是要认识到商是你可以平均减去除数的次数,而余数是剩下的。 所以:
def divide(a, b):
quotient = 0
while a>b:
quotient = add(quotient, 1)
a = subtract(a,b)
return (quotient, a)