您的位置:首页 > 其它

[usaco]丑数

2010-11-17 16:50 183 查看
pascal code

var
s:ansistring;
bz:array[0..99999] of longint;
i,j,k,m,n,last,wei:longint;
procedure print;
var
i:longint;
begin
for i:=1 to length(s) do
begin
write(s[i]);
if i mod 76=0 then writeln;
end;
if i mod 76<>0 then writeln;
end;
begin
assign(input,'fracdec.in');reset(input);
assign(output,'fracdec.out');rewrite(output);
readln(m,n);
fillchar(bz,sizeof(bz),0);
str(m div n,s);
k:=length(s);
s:=s+'.';
wei:=1;
last:=m mod n;
bz[last]:=1;
if m mod n=0 then
begin
s:=s+'0';
print;
end else
begin
repeat
inc(wei);
last:=last*10;
s:=s+chr(last div n+48);
last:=last mod n;
if bz[last]<>0 then break else bz[last]:=wei;
until (last=0);
if last=0 then print else
begin
insert('(',s,k+bz[last]+1);
s:=s+')';
print;
end;
end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: