切换到宽版
  • 5462阅读
  • 3回复

编程题:不可约分数 [复制链接]

上一主题 下一主题
离线girlflying
 
只看楼主 倒序阅读 0 发表于: 2007-05-15
问题描述:
循环小数的格式为0.ddd…d(ddd…d),其中d为阿拉伯数字,括号内的部分为小数的循环部分,编程输出一批循环小数所对应的不可约分数m/n。所谓不可约分数,是指分子与分母的最大公约数为1。m,n不超过整型(Integer)数的范围。
数据输入:
输入数据放在文本文件sep.in中,文件中有多个循环小数,每个循环小数占一行,且长度不超过100个字符,所有的循环小数均是正确的循环小数。
输出格式:
   在文件sep.out中输出所有相应的不可约分数。
输入输出样例:
如输入文件(sep.in)为如下内容时:
0.(714285)
0.5208(3)
0.66360(2941176470588235)
输出文件sep.out中的结果为:
5/7
25/48
361/544
离线archimedes

只看该作者 1 发表于: 2007-05-16
easy。
纯循环小数能被表示成
循环节
-------
99...9
的形式,混循环小数也能做类似的处理。
离线foolgirl
只看该作者 2 发表于: 2007-05-17
有没有详细的解题报告?我最近也在研究这一题。最好有更快速的算法。
离线girlflying
只看该作者 3 发表于: 2007-05-18
上面1楼的,虽然能表示成循环节除99...9的形式,但是怎样求它们的公约数啊。这可涉及高精度的问题。
快速回复
限100 字节
 
上一个 下一个