J'essaie de convertir une fraction en nombre décimal avec un nombre minimal de positions décimales répétées entre parenthèses. Il devrait ressembler à ceci:Convertir une fraction en décimal en Pascal
pour n=100, m=5
sortie doit être 20
pour n=184, m=5
sortie doit être 36.8
pour n=1, m=3
sortie doit être 0.(3)
pour n=11, m=24
sortie doit être 0.458(3)
pour la sortie n=100, m=7
devrait être 14.(285714)
Mon programme échoue pour la dernière fraction (100/7). Qu'est-ce que je fais mal? Quelqu'un pourrait-il m'aider?
Ceci est mon 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.