ich auf Collatz Conjecture in Ruby arbeite und bei n stop = 1. Dies ist der Code, den ich bisher:Array Anfügen während in Ruby mit Rekursionsschleife
def collatz(n)
arr = []
if n == 1
arr << n
return arr
elsif n % 2 == 0
n = n/2
arr << n
collatz(n)
else
n = (3 * n) + 1
arr << n
collatz(n)
end
end
ich den Code wollen eine Rückkehr Array aller n Werte in der Schleife. Zum Beispiel, wenn ich collatz(10)
tun, mag ich es [5,16,8,4,2,1]
Momentan angezeigt wird es zeigt [1]
für jeden Eingabewert. Dies liegt daran, dass nach der ersten Schleife collatz (n) aufgerufen wird und die erste Zeile arr= []
lautet, wodurch mein Array jede Schleife zurückgesetzt wird.
Wie kann ich die Methodenschleife beim Anhängen meines Arrays fortsetzen?
hilft Warum ist recurse Übel? –
Rekursiv ist böse, weil es deine Fähigkeiten mit maximalen Call-Stack-Beschränkungen einschränkt. Es (Callstack-Limit) hängt von Ihrer Sprache und Ihrem Computer ab, ist aber nicht unendlich. –