2017-03-18 8 views
1

私は基本的に '//'演算子を使用せずにフロア分割を実行する再帰関数を作成しています。私は関数を理解しましたが、入力nが正の場合にのみ、n < dのときに関数をどのように操作するのか分かりません。どのような助けも大変ありがとうございます!フロア分割の再帰関数

私の現在のコード:

def quotient(n , d): 

    if (n >= d): 
     return quotient(n - d, d) + 1 

    else: 
     return n 

答えて

3

あなたはそのようにそれを行うことができます。

def quotient(n , d): 

    if (0<=n<d): 
     return 0 
    if (n >= d): 
     return quotient(n - d, d) + 1 
    if n<0: 
     return quotient(n + d, d) - 1 

商はこれが最初ifで、0である0<=n<d場合。 nが負の場合は、正のケースと同様の方法で処理します。記号を切り替えるだけです。

+0

ありがとうございました! –