2017-10-14 3 views
1

私は試験の練習をしており、divide(a、b)という関数を作成するように質問すると、2つのパラメータの商と剰余の両方を計算し、両方の結果を返します。組み込み除算演算子またはモジュロ演算子を使用することはできず、減算関数を繰り返し呼び出すループを使用して演算を実行する必要があります(前のステップで行った関数。私は減算だけを使ってループ内の除算を行う方法を理解できません。これはこれまでのコードです(注: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はどのように代わりに分裂の減算を使用する(B)除算で私のwhileループを変更することができ

答えて

1

をさて、ここでの鍵は商が何回あなたが均等にできていることを認識することですので?あなたの分裂を引きます。 mainderは残っているものです。 So:

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

ありがとうございます!前と同じようなことをやったと思いますが、うまくいきませんでした。また、[ientient = 0:]の最後のコロンはそこにあることを意味しますか?それは私のための構文エラーとして表示されますが、それなしでコードはうまくいきました。 – Moca

+0

おっと!それは単にタイプミスでした;) – Hallsville3

関連する問題