关于我的程序快速询问
问题描述:
我目前正在为python做一个编程概念课程,这是我的任务之一。我基本上不得不通过添加来繁殖。我已经拥有了一切需要完成的事情,但这里的权利是额外的功劳。我已经提交了作业,但现在我只是问为什么这不起作用。关于我的程序快速询问
问题是当yMult
变量是浮点数时它不起作用。我认为发生的事情是,我的柜台(如老师希望我们用循环和计数器来做)每次增加1,如果我有一个浮点数作为yMult
它不会有xMult
就像说.5。我会做什么来解决这个问题和/或它会是什么样子?
这里是我做出了代码:
def add(xAdd, yAdd):
return xAdd + yAdd
def subtract(xSub, ySub):
return xSub + (-ySub)
def multiply(xMult, yMult):
total = 0.0
counter = 0.0
while counter > yMult:
if yMult <= 0.0:
total = add(total, -xMult)
counter = add(counter, -1.0)
while counter < yMult:
if yMult >= 0.0:
total = add(total,xMult)
counter = add(counter, 1.0)
return total
def main():
print multiply (5.5,9), multiply(9,5.5), multiply(2,4), multiply(2,-4), multiply(-4,2), multiply(-4,-2), multiply(4,1), multiply(1, 4), multiply(4, 0), multiply(0, 4), multiply(4, -1)
main()
的结果如下:49.5 54.0 8.0 -8.0 -8.0 8.0 4.0 4.0 0.0 0.0 -4.0
任何帮助将是真棒!
答
我不确定你是否可以解决这个问题,而不需要一些乘法。
如果你想走0.5,那么你需要添加另一半的数字,这意味着乘以0.5。
但是,如果你保证接收至少一个整数,那么你可以使用它作为计数器:
def multiply(xMult, yMult):
total = 0.0
counter = 0.0
limit = yMult
toAdd = xMult
if isinstance(xMult,int):
limit = xMult
toAdd = yMult
while counter <abs(limit):
if limit <= 0.0:
total = add(total, -toAdd)
else:
total = add(total,toAdd)
counter = add(counter, 1.0)
return total
是的,我知道我将如何与乘法做,但问题是,教授明确表示不乘任何地方在问题XD中 – DiabolicNick