2017-01-22 4 views
3

Ich habe Probleme mit dem Schreiben rekursiver Methoden in Java. Ich kann einfachere tun, wie die Fibonacci-Sequenz, GCD usw. Ich muss eine rekursive Methode schreiben, um Dezimalzahlen in binäre umzuwandeln und es in String-Form zurückgeben. Ich bin jedoch unsicher, ob ich das String-Ergebnis in der Methode im rekursiven Aufruf zurückgeben muss oder nur eine effektive Art, es zu schreiben.Einfache rekursive Methoden in Java

public static String toBinary(int decimal) {...} 

Kann jemand etwas Licht auf einfache Schritte werfen, um dies zu erreichen? Rekursion ist immer noch ein bisschen verschwommen für mich.

Antwort

3

Was Sie wahrscheinlich tun sollen grundsätzlich die decimal durch jeweils zwei Rekursionsschritt teilen:

  • Eingang ist sogar -> letzte Bit 0 ist, teilen Eingang durch 2 und rufen toBinary wieder
  • Eingangs ungerade ist -> letzte Bit 1 ist, durch 2-Eingang, rufen toBinary

Dann versuchen durch eine, divide reduzieren, um herauszufinden, wann die Rekursion zu stoppen und wie die Bits in eine Kette anzuhängen.

+0

Danke! Ich werde das ausprobieren und sehen, was funktioniert. Wäre es falsch, wenn die Methode das String-Ergebnis als ein weiteres Argument akzeptiert, das an die Zeichenfolge angehängt wird? –

+0

@ColeDooley Wäre nicht falsch, aber zur gleichen Zeit wahrscheinlich nicht ideal, lassen Sie die Methode die "String" -Evaluierung der binären, die eingefügt wird. Sie können auf der Unterseite beginnen - was passiert, wenn Sie es 0 setzen, was wenn Sie fügen 1 ein, was ist, wenn Sie 2 und 3 eingeben, dann sollten Sie anfangen zu sehen, wie man die String-Verkettung über den rekursiven Aufruf behandelt. – luk2302

+0

Gut, ich werde es ausprobieren und sehen, was ich mit –