过循环节(24-2)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
岐岐老师的听力非常好。这一天,他听到 C 同学说自己很想过国庆节。岐岐老师十分欣慰,便决定出一道有关“循环节”的编程题,让大家用代码模拟小数除法的循环节检测。
题目描述
两个正整数相除,如果无法整除,则商要么是有限小数(如 ),要么是无限循环小数。无限循环小数又分为纯循环小数(循环节从小数第一位开始,如 )和混循环小数(循环节从小数第 位开始,如 )。
“循环节”指的是在无限小数中,小数点后从某一位起到某一位止的一段数字不断循环出现,该段数字即为循环节。例如:
请编写程序,给定两个正整数 (保证 无法被 整除),在 s 内计算 的小数形式:
- 如果结果是有限小数,完整输出结果,如
0.5; - 如果结果是循环小数,则输出直到第一个循环节结束,并将循环节用
()括起来,如0.(3)或0.1(3)。
输入格式
第一行一个整数 ,表示测试组数。
接下来 行,每行包含两个正整数 。
输出格式
对于每组数据,输出一行表示 的小数结果。
- 若为有限小数,直接完整输出;
- 若为循环小数,输出至第一个循环节结束,并用
()括起循环节。
样例
4
1 2
2 6
1 7
3 13
0.5
0.(3)
0.(142857)
0.(230769)
2
5 34
2 15
0.1(4705882352941176)
0.1(3)
样例解释
- 对
1/2,商为有限小数0.5。 - 对
2/6,商为0.33333…,循环节为3,故写作0.(3)。 - 对
1/7,商的循环节为142857; - 对
3/13,循环节为230769; - 对
5/34,商为0.14705882352941176…,循环节为4705882352941176; - 对
2/15,商为0.13333…,循环节为3。
数据范围
| 测试点编号 | 数据范围 | 特殊性质 |
|---|---|---|
| 1 | A | |
| 2–3 | ||
| 4–5 | B | |
| 6–7 | 无 | |
| 8–10 |
- 特殊性质 A:保证所有答案是有限小数。
- 特殊性质 B:保证答案中没有混循环小数。
- 对所有数据,保证 ,且 一定会是小数。
- 单个测试点总输出长度不超过 ,空间上限 128MB。