2017-03-18 3 views
1

Ich erstelle eine rekursive Funktion, die im Wesentlichen Fluraufteilung betreibt, ohne den Operator '//' zu verwenden. Ich habe die Funktion herausgefunden, aber nur, wenn der Eingang n positiv ist und ich kämpfe, um herauszufinden, wie man die Funktion bedient, wenn n < d. Jede Hilfe wird sehr geschätzt, danke!rekursive Funktion für Floor Division

Mein aktueller Code:

def quotient(n , d): 

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

    else: 
     return n 

Antwort

3

Sie können es so machen:

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 

Wenn 0<=n<d der Quotient 0 ist, ist dies die erste if. Wenn n negativ ist, behandeln wir es in ähnlicher Weise wie im positiven Fall, nur die Zeichen wechseln.

+0

Vielen Dank! –