2016-04-02 18 views
-1

İki temsili, ilk bir temettü, ikincisini bölenin temettüden ardışık olarak çıkarılmasıyla ikinci bir ayrıştırıcıyı aldıktan sonra, bölüm ve kalan bölümleri döndüren bir işlev yazmam gerekir.Sadece çıkarma ve toplama kullanarak yinelemeli bölüm

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) 

fonksiyonunda sıfır olarak tanımlanır c varsayılan değişken kalmadan katsayısı bulmak için herhangi bir yol işlevi, yalnızca tanımlarken iki argüman olan ve bir veya b dayalı bir şey dönen sadece ile ... var mı? (Örnek aşağıdadır)

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

Sen bu işi yapma hangi sorunları yaşadığınızı açıklamaya gerek. – snakecharmerb

+0

Evet, recursive_division çağrısından döndüğünüzde divisor'u artırarak 'c''den kaçınabilirsiniz. – Lucero

+0

@Lucero, ne demek istediğini bana gösterebilir misin? –

cevap

1

Evet, recursive_division özyineleme tarafından döndürülen böleni artırarak c kullanarak önleyebilirsiniz. (Değil test) böyle

şey:

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) 
İlgili konular