题目:给定一个有限小数或无限循环小数,你能否以分母最小的分数形式来返回这个小数呢?
解法:
1、对于有限小数X=0.a1a2…an来说比较简单,X就等于(a1a2…an)/10^n。
2、对于无限循环小数X=0.a1a2…an(b1b2…bm)做如下转换:
X = 0.a1a2…an(b1b2…bm) => 10^n*X = a1a2…an+0.(b1b2…bm)
另Y = 0.(b1b2…bm),则 10^m*Y = b1b2…bm.(b1b2…bm) => 10^m*Y = b1b2…bm+0.(b1b2…bm) =>
10^m*Y-Y = b1b2…bm => Y = b1b2…bm/(10^m-1)
所以X = ((a1a2…an)*(10^m-1)+(b1b2…bm))/((10^m-1)*10^n)