2016-11-10 6 views
-1

小数点以下を括弧内の小数点以下の桁数で最小に変換しようとしています。 0.458(3)小数をパスカルで10進数に変換

でなければなりませんn=184, m=5出力用20

n=1, m=3出力用36.8

n=11, m=24出力用0.(3)

する必要がありますする必要がありますする必要がありますn=100, m=5出力用

:それは次のようになります。 n=100, m=7の出力は14.(285714)

私のプログラムは、最後の分数(100/7)で失敗しています。私は間違って何をしていますか?誰か助けてくれますか?

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. 

答えて

2

if remainder = (remainder*10 mod m) 

行1桁の繰り返しのためにのみチェック:

これは私のコードです。複数の長さの繰り返しを確認する必要があります。明らかに、100/7がそのためのエクササイズに追加されました。

関連する問題