Ich versuche, Bruch in Dezimalzahl mit minimaler Anzahl von wiederholten Dezimalstellen in Klammern zu konvertieren. Es sollte wie folgt aussehen:Konvertieren von Bruch zu Dezimal in Pascal
für n=100, m=5
Ausgang 20
für n=184, m=5
Ausgabe 36.8
für n=1, m=3
Ausgang 0.(3)
sollte
für n=11, m=24
Ausgang 0.458(3)
sein sollte
für n=100, m=7
sollte Ausgabe sein 14.(285714)
Mein Programm ist für den letzten Bruch (100/7) fehlgeschlagen. Was mache ich falsch? Könnte mir jemand helfen?
Dies ist mein Code:
Program fraction2decimal(output);
var n,m,remainder: integer;
begin
read(n,m);
d := 0;
write (n div m);
remainder := n mod m;
if remainder <> 0 then write('.');
while remainder <> 0 do
begin
if remainder = (remainder*10 mod m) then write('(');
write (remainder*10 div m);
if remainder = (remainder*10 mod m) then begin
write(')');
break;
end;
end;
remainder := remainder*10 mod m;
end.