2016-11-21 4 views
2

私は現在、Pythonのプログラミングコンセプトコースをやっています。これは私の課題の1つです。私は基本的には追加しなければならなかった。私はそれが完了する必要があるすべてがあるポイントにそれを持っていたが、ここで余分な信用です。私はすでに課題を提出しましたが、今はなぜこれが機能していないのか尋ねるためにここにいます。クイックお問い合わせ私のプログラムについて

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

関連する問題