将无限循环小数转换成分数形式

节选自《编程之美》

设一个循环小说X=0.a1a2a3...an(b1b2...bm),括号中的是循环节,例0.333(333)

将X分成两部分,X=(a1a2..an+0.(b1b2..bm))/10n

设Y=0.(b1b2...bm)

则有Y=(b1b2...bm+0.(b1b2...bm))*10m

那么就有Y=b1b2...bm/(10m-1)

综上可知

X=(a1a2...an+Y)/10n

将Y=b1b2...bm/(10m-1)带入上式

则X=((a1a2...an)*(10m-1)+(b1b2...bm))/((10m-1)*10n)


注:10m,10n是10的m次方和10的n次方的意思

你可能感兴趣的:(编程之美)