高校の内容ではないかもしれませんが、全く分からないので教えて下さい。
循環小数のプログラムなのですが、どうしてこのプログラムで、
1/7=0.{142857}というように循環部分が求められるのか教えて下さい。(行番号は省略しました)
OPTION BASE 0
DIM A(1000)
DIM R(999)
LET N=1000
FOR I=0 TO N-1
LET R(I)=0
NEXT I
DO
PRINT "分母p=";
INPUT P
IF (P>N) THEN
PRINT "分母は1000以下にしてください。"
END IF
LOOP WHILE (P>N)
PRINT "分子q=";
INPUT Q
LET A(0)=INT(Q/P)
LET Q=MOD(Q,P)
LET K=0
DO
LET K=K+1
LET R(Q)=K
LET A(K)=INT(Q/P)
LET Q=MOD(Q,P)
LOOP WHILE (R(Q)=0)
PRINT A(0);"/・";
FOR I=1 TO R(Q)-1
PRINT A(I);
NEXT I
IF (R(Q)<K) OR (A(K)<>0) THEN
PRINT "{";
FOR I=R(Q) TO K
PRINT A(I);
NEXT I
PRINT "}";
END IF
END
(※不等号はタグの関係で大文字にしてあります。管理人談)
★希望★完全解答★