1422: Math
内存限制:16 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:19
解决:7
题目描述
这个问题很简单,就连小学生都不会做
给你一个小于1的非负有理数的小数形式,求出它的分数形式,当然这个小数可能是无限循环小数
输入规则:循环节用中括号标出,几个例子如下
0.[3] = 0.3333333333… = 1/3
0.[142857] = 0.142857142857142857… = 1/7
0.8[3] = 0.8333333333… = 5/6
输入保证合法!也就是说中括号最多只会有一个且中括号的后面不会再出现数字,例如0.[5]6、0.5[6]22[35]等都是非法表示,循环节里面的数不能为0也不能全为9,例如0.[9]也是非法表示
除此之外不会出现多余的0,例如0.50000和0.5[0]都非法,它们都等于0.5,也不会出现除了数字和中括号和一个小数点外任何其他字符,更不会出现莫名的空格
为了降低难度,这题的后台数据并不多,并且中间过程不会超过int范围
建议用scanf("%s", str)输入!!
给你一个小于1的非负有理数的小数形式,求出它的分数形式,当然这个小数可能是无限循环小数
输入规则:循环节用中括号标出,几个例子如下
0.[3] = 0.3333333333… = 1/3
0.[142857] = 0.142857142857142857… = 1/7
0.8[3] = 0.8333333333… = 5/6
输入保证合法!也就是说中括号最多只会有一个且中括号的后面不会再出现数字,例如0.[5]6、0.5[6]22[35]等都是非法表示,循环节里面的数不能为0也不能全为9,例如0.[9]也是非法表示
除此之外不会出现多余的0,例如0.50000和0.5[0]都非法,它们都等于0.5,也不会出现除了数字和中括号和一个小数点外任何其他字符,更不会出现莫名的空格
为了降低难度,这题的后台数据并不多,并且中间过程不会超过int范围
建议用scanf("%s", str)输入!!
输入
先输入一个T表示T组测试数据(T≤15)
接下来每行输入一个字符串表示一个大于等于0小于1的有理数,长度不会超过10
接下来每行输入一个字符串表示一个大于等于0小于1的有理数,长度不会超过10
输出
每一个样例输出对应的最简分数形式,如果分子是分母的倍数,直接输出一个整数
样例输入 复制
3
0.8[3]
0.[3]
0.125
样例输出 复制
5/6
1/3
1/8