2016-04-02 39 views
-1

我必須編寫一個函數,它在獲取兩個參數(第一個是除數)之後返回除法的商和餘數,第二個除數是從遞歸減去除數的除數。僅使用減法和加法的遞歸除法

def recursive_division (a, b, c = 0): 
    if b == 0: 
     return ("(Cannot divide by zero)","(Cannot divide by zero)") 
    elif a < b: 
     return (c,a) 
    else: 
     return recursive_division (a - b, b, 1 + c) 

有沒有辦法找到,而不必定義c作爲函數零點的默認變量的商...隨着定義時,該功能只適用有兩個參數,僅根據a或b返回的東西嗎? (下面的例子)

def recursive division (a, b) 
    ... 
    return (x, y) 
+1

你需要解釋一下你有使這項工作有什麼問題。 – snakecharmerb

+0

是的,您可以通過從recursive_division調用返回時增加除數來避免「c」。 – Lucero

+0

@Lucero你能告訴我你的意思 –

回答

1

是的,你能避免通過增加由recursive_division遞歸返回除數使用c

類似的東西(未測試):

def recursive_division (a, b): 
    if b == 0: 
     return ("(Cannot divide by zero)","(Cannot divide by zero)") 
    elif a < b: 
     return (0, a) 
    else: 
     (x, y) = recursive_division (a - b, b) 
     return (x+1, y)