求助!一道free pascal题

有限小数化分数输入一个小数(小数点后至多8位),将其化成分数,小数点后不会有多余的0。输入:1.5输出:3/2谢... 有限小数化分数
输入一个小数(小数点后至多8位),将其化成分数,小数点后不会有多余的0。
输入:1.5
输出:3/2

展开
 我来答
CZL435A4C
2010-08-11
知道答主
回答量:37
采纳率:0%
帮助的人:28.3万
展开全部
var st:string;
r,q:real;
i,l,t,j,fz,fm,i1:longint;
begin
readln(st);
val(st,r);
i:=1;
while st[i]<>'.' do
inc(i);
inc(i);
l:=length(st)-i+1;
t:=1;
for j:=1 to l do
t:=t*10;
q:=r*t;
fz:=trunc(q);
fm:=t;
if fz>fm then
begin
for i:=2 to fz-1 do
if fz mod i=0 then
if fm mod i=0 then
begin
fz:=fz div i;
fm:=fm div i
end
end
else
if fz<=fm then
for i1:=2 to fm-1 do
if fm mod i=0 then
if fz mod i=0 then
begin
fz:=fz div i;
fm:=fm div i
end;
writeln(fz,'/',fm)
end.
编得比较紧急,可能不是很完善,不过结果肯定是对的。
254257543
2010-07-30
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
血吸虫
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
choudoufu7
2010-07-30 · 超过20用户采纳过TA的回答
知道答主
回答量:141
采纳率:0%
帮助的人:79.8万
展开全部
直接用长除法

USACO上正好有这道题 自己去看题解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5da619f
2010-08-04 · TA获得超过279个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:259万
展开全部
根据他的小数点位*10^n
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式