题目:
给定一个正整数n,求1/n的小数表示,如:
1/2=0.5
1/3=0.(3)
1/6=0.1(6)
1/7=0.(142857)
其中括号表示小数中的循环部分。
思路:
考虑一下除法运算的过程:
当余数与之前运算出现重复时,那么说明循环已经开始,因此可以通过hash表来记录余数对应的位置。
被除数 除数 余数 商
1 7 1 0
1*10 7 3 1
3*10 7 2 4
2*10 7 6 2
6*10 7 4 8
4*10 7 5 5
5*10 7 1 7
1*10 7 3 1
3*10 7 2 4
2*10 7 6 2
6*10 7 4 8
4*10 7 5 5
5*10 7 1 7
代码:
#include #include