Dezimal in Dual rekursiv?
Ich muss per C# eine Dezimal- in eine Dualzahl umwandeln und dies als rekurisve Variante.
An sich habe ich das geschafft, allerdings mit Abbruchbedingung und While-Schleife, aber so ist es iterativ, oder nicht?
Ich habe leider nirgends gefunden, wie man diese Umwandlung rekursiv hinbekommt.
Hat jemand da mehr Ahnung und kann mir vielleicht helfen?
2 Antworten
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Ja, das ist eine iterative Lösung :) Rekursion wäre, wenn die Funktion sich selber aufruft!
Also dual() ruft dann irgendwo dual(dezimal / 2) auf. Hilft dir das schon weiter?
Rekursion bedeutet quasi, ich weiß nicht wie man es für n löst. Aber Wenn ich n-1 kenne, dann kann ich n ableiten! Und das führst du so lange runter bis n trivial ist. (In deinem Falle wäre das 0)
![](https://images.gutefrage.net/media/user/xxxcyberxxx/1691185806883_nmmslarge__0_0_1230_1230_4dfa4fbf5df5051b1dd22ccc1781adca.png?v=1691185807000)
Ja genau, was du da hast, ist Iterativ.
Da du die Funktion nicht sich selbst aufrufen lässt, ist das keine Rekursion.
An sich besteht dein Rekursiver Aufruf aus zwei Zeilen:
- Abbruchbedingung (wenn der Wert 0 ist)
- Sonst
und jetzt überleg dir doch mal genau, wie du auf dem Papier Dezimal zu Binär umrechnen lassen würdest.