首页 > 代码库 > 一种将无限循环小数快速转换为分数的方法

一种将无限循环小数快速转换为分数的方法

问题描述:

将任意无限循环小数转换为分数。例如0.121121121........=121/999

算法综述:

前面有一篇博文抱着娱乐态度证明了0.9999...=1 ,证明过程既不严谨。但由此可想到一种将任意无限循环小数快速转为分数的方法。

首先回顾下0.9999...=1 的证明过程:

证明:

令a=0.99999...(无限循环)

则10a=9.99999...(无限循环)

10a-a=9.99999...(无限循环)-0.99999...(无限循环)=9=9a

所以a=1

换汤不换药:

令a=0.121121121...(无限循环)

则1000a=121.121121121...(无限循环)

1000a-a=121.121121...(无限循环)-0.121121...(无限循环)=121=999a

a=121/999

。。。。。

由此我们可以看出,这是一种多么无聊和无用的方法啊。。。。。。

代码实现:

八股文害死人。。。这样的还实现个P。。。

一种将无限循环小数快速转换为分数的方法