fracdec.pas
来自「Magio牛的usaco源代码」· PAS 代码 · 共 61 行
PAS
61 行
{
ID:maigoak1
PROG:fracdec
}
program fracdec;
const
max=100000;
var
fin,fout:text;
digit:array[1..max]of 0..9;
hash:array[0..max]of -1..max;
n,d,dg,i:longint;
s:string;
procedure add(c:char);
begin
s:=s+c;
if length(s)=76 then begin
writeln(fout,s);
s:='';
end;
end;
begin
assign(fin,'fracdec.in');
reset(fin);
readln(fin,n,d);
close(fin);
assign(fout,'fracdec.out');
rewrite(fout);
for i:=0 to d do
hash[i]:=-1;
i:=n div d;
str(i,s);
s:=s+'.';
n:=n mod d;
hash[n]:=0;
dg:=0;
repeat
inc(dg);
n:=n*10;
digit[dg]:=n div d;
n:=n mod d;
if hash[n]>-1 then break else hash[n]:=dg;
until n=0;
if n=0 then
for i:=1 to dg do
add(chr(48+digit[i]))
else begin
for i:=1 to hash[n] do
add(chr(48+digit[i]));
add('(');
for i:=hash[n]+1 to dg do
add(chr(48+digit[i]));
add(')');
end;
if s<>'' then writeln(fout,s);
close(fout);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?