#776. [CZOI2013 E] 小数转分数

[CZOI2013 E] 小数转分数

题目描述

小数由整数部分、小数部分和小数点组成。当测量物体时往往会得到不是整数的数,古人就发明了小数来补充整数,小数是十进制分数的一种特殊表现形式,所有分数都可以表示成小数,小数中除无限不循环小数外都可以表示成分数。最近小 G 对如何将一个小数转换成分数产生了浓厚兴趣,为了简化问题小 G 只研究整数部分为零的小数或循环小数的转换问题,这种小数有以下 33 类:

  • 纯小数:形如 0.xxx,如 0.12,0.945,0.4030.12,0.945,0.403 都是纯小数。
  • 纯循环小数:循环节从小数部分第一位开始的循环小数,称为纯循环小数,通常我们把循环节记录在一对括号中。如纯循环小数 0.333333330.33333333\cdots 可记为 0.(3)0.(3)
  • 混循环小数:循环节不是从小数部分第一位开始的循环小数。例如:0.2333333,0.09843434343430.2333333\cdots,0.0984343434343\cdots等,它们分别记为 0.2(3)0.2(3)0.098(43)0.098(43)

输入格式

第一行为一个正整数 NN,表示要转换的小数的小数部分的长度。

第二行为需要转换的小数的小数部分,由数字和括号组成,括号内为循环节。为方便读入,输入数据省略了小数点和整数部分的 00,如 0.120.12 省略后为 1212

输出格式

仅有一行为转化后的最简分数,所谓最简分数,是指分子、分母的最大公约数等于1的分数,又称既约分数。如 23,89,38\dfrac23,\dfrac89,\dfrac38 等都是最简分数。而 610\dfrac6{10} 不是最简分数,因为分子、分母的最大公约数等于 22,它可以约分为 35\dfrac35。你可以用附件中的计算器验证你的程序的正确性。

2
12
3/25
3
(3)
1/3
7
098(43)
1949/19800

对于 30%30\% 的数据满足:输入数据为纯小数。

对于另外 30%30\% 的数据满足:输入数据为纯循环小数。

对于另外 40%40\% 的数据满足:输入数据为混循环小数。

对于 100%100\% 的数据满足:输入数据中的数字个数严格少于 1010 个。