2016-11-21 92 views
2

我目前正在爲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

我不確定你是否可以解決這個問題,而不需要一些乘法。
如果你想走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 
+0

是的,我知道我將如何與乘法做,但問題是,教授明確表示不乘任何地方在問題XD中 – DiabolicNick