2017-05-09 4 views
-1

Ich versuche, eine Funktion zu arbeiten, die zwei Zahlen teilt und ihren Quotienten zurückgibt. Ich brauche rekursive Subtraktion, um den Quotienten zu finden.Division mit rekursiver Subtraktion

Ich verstehe nicht wirklich, wie man das macht. Ich denke, ich brauche eine Zählervariable, die ich jedes Mal um 1 erhöht, wenn ich die Funktion recurse. Das Problem ist, dass ich nur zwei Argumente in dieser Funktion übergeben können.
(define (divide ab) so bin ich nicht sicher, wie der Zähler verwenden

Kann ich etwas psudeocode Hilfe bekommen

Antwort

0
?
Function result <- Divide (a, b) 
    counter = 0 
    while a - b >= 0 do 
     a = a-b 
     counter = counter + 1 
    EndWhile 
    result = counter 
End Function 

Algoritm without_title 
    write "which numbers: " 
    read a b 
    result = Divide(a, b) 
    write "Result: ", result 
EndAlgoritm 
+0

Welche Sprache ist das? – Lazarus

+0

ein übersetzter Pseudocode mit pseint in Spanisch zu Englisch, aber die Idee ist dasselbe – SirHectorin

0

der Zähler ist implizit in der Rekursion:

(define (divide n d) 
    (if (< n d) 
     0 
     (+ (divide (- n d) d) 1))) 

Hier n ist der Zähler und d ist der Nenner; wir nehmen an, dass keiner negativ ist. Hier ein Beispiel:

> (divide 27 4) 
6 

Das wird nicht funktionieren, wenn d 0 ist; Siehst du warum?

Denken rekursiv kann schwierig sein, wenn Sie zuerst starten. Aber wenn du dich damit abmühst, wirst du irgendwann lernen, rekursiv zu denken, und dann wirst du dich fragen, warum du es jemals für schwierig gehalten hast.

+0

Hey, das macht jetzt sehr viel Sinn! Ich sehe, wie der Zähler in deinem Code funktioniert. Vielen Dank. :) – Lazarus