U335713 小数变分数
题目背景
在卡西欧计算器中,有一个神奇的功能。我们有一个循环小数,如:
```cpp
5.3333333333
0.1866666666
2.4545454545
```
等等。我想将它化成分数的形式,方便运算,那我该怎么做呢?很简单,在卡西欧计算器中输入这个循环小数(多循环几次),他就会自动帮你转化为(假)分数形式。如:
$\Large{\frac{16}{3}}$
$\Large{\frac{14}{75}}$
$\Large{\frac{27}{11}}$
。
题目描述
下面我们尝试使用程序实现这种功能。
在一个小数的小数部分中,我们认为“循环部分”指的是**长度最短的**、**连续重复出现的**、且**为小数部分后缀的**数串(如`0.141414141414` 中,我们认为循环部分是 `14` 而不是 `1414` ),且必须满足**连续的循环部分连接而成的数串也为小数部分的后缀**(如 `0.3333333333114` 中, `3` 并不是它的循环部分。 `0.3333331919191919` 中, `19` 是它的循环部分)。
输入一个小数,若其没有循环部分或循环部分的循环次数小于 $5$ ,输出原小数。否则输出转换后的(假)分数。注意:输出的分数必须是**最简形式**,即不能再约分。
假分数指的是分母大于等于分子的分数。
输入格式
一行一个小数,以 $m.n$ 的形式出现。
其中 $0\le m
输出格式
若输入的小数没有循环部分或循环部分的循环次数小于 $5$ ,输出一行原小数。
否则输出两行,第一行为转换成的分数的分子,第二行为转换成的分数的分母。
说明/提示
十年 $OI$ 一场空,不开 $long$ $long$ 见祖宗