C++

bitte ich habe eine frage.

ich habe eine programm mit 2 klassen geschrieben: class Complex und class Bruch. ich möchte für die Klasse Bruch eine konstruktor aus einer double-Variablen erstellen und ich möchte dazu eine Annäherung in einer Rekursion verwenden. wie kann ich das machen.

Das ist weniger eine C+±Frage als eine der Algorithmik, oder?
Wie wäre folgender Algorithmus:

Sei D die darzustellende Zahl, und d der Nachkommaanteil (D = …,d).
Sei z der gesuchte Zaehler, n der gesuchte Nenner. Initialisiere z = 0, n = 1. Sei epsilon der tolerierte Fehler.

Solange d - z/n > epsilon:
wenn d > (2*z+1) / n:
z = 2*z + 1
n = 2*n
sonst:
z = 2*z
n = 2*n

Das Ergebnis ist dann der Ganzzahlanteil GZ von D plus z/n, also (GZ*n + z) / n. Kürzen nicht vergessen.

Das ist jetzt zwar nicht als Rekursion formuliert, aber könnte funktionieren, oder? Man muss noch aufpassen, dass es auch mit negativen Zahlen funktioniert etc. Ich hab’s jetzt allerdings nicht ausprobiert bzw. auch nicht die Korrektheit bewiesen…

War das dein Hauptproblem, oder auch, wie man es in C++ hinschreibt?

Viele Grüße,
Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]