一种将无限循环小数快速转换为分数的方法

问题描述:

将任意无限循环小数转换为分数。例如0.121121121........=121/999

算法综述:

前面有一篇博文抱着娱乐态度证明了0.9999...=1 ,证明过程既不严谨。但由此可想到一种将任意无限循环小数快速转为分数的方法。

首先回顾下0.9999...=1 的证明过程:

证明:

令a=0.99999...(无限循环)

则10a=9.99999...(无限循环)

10a-a=9.99999...(无限循环)-0.99999...(无限循环)=9=9a

所以a=1

换汤不换药:

令a=0.121121121...(无限循环)

则1000a=121.121121121...(无限循环)

1000a-a=121.121121...(无限循环)-0.121121...(无限循环)=121=999a

a=121/999

。。。。。

由此我们可以看出,这是一种多么无聊和无用的方法啊。。。。。。

代码实现:

八股文害死人。。。这样的还实现个P。。。

时间: 2024-09-28 17:25:25

一种将无限循环小数快速转换为分数的方法的相关文章

无限循环小数POJ1930

题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比如0.3,3的循环就是9分之3,0.654,654的循环就是999分之654, 0.9,9的循环就是9分之1,以此类推. (2)混循环:用9和0做分母,首先有几个循环节就几个9,接着有几个没加入循环的数就加几个0,再用小数点后面的数减 没加入循环的数,比如0.43,3的循环,有一位数没加入循环,就在

如何将无限循环小数转换为分数

将一个无限循环小数转换为分数 例如: 32.5632323232......... 1.设x=32.5632323232......... 则 y=x*10000 y=325632.32323232..... 2. z=x*100 z=3256.3232323232....... 3. y-z=322376  //注意,这里的小数部分被抵消了 y-z=10000x-100x 也就是9900x=322376 x=322376/9900 然后对分式化简得最简表达式 化简分式可以用辗转相除法求出最大公

将无限循环小数化为分数

众所周知,有限小数是十进分数的另一种表现形式,因此,任何一个有限小数都可以直接写成十分之几.百分之几.千分之几……的数.那么无限小数能否化成分数? 首先我们要明确,无限小数可按照小数部分是否循环分成两类:无限循环小数和无限不循环小数.无限不循环小数不能化分数,这在中学将会得到详尽的解释:无限循环小数是可以化成分数的.那么,无限循环小数又是如何化分数的呢?由于它的小数部分位数是无限的,显然不可能写成十分之几.百分之几.千分之几……的数.其实,循环小数化分数难就难在无限的小数位数.所以我就从这里入手

如何把一个无限循环小数转换成一个分数(算法)

循环小数如何化分数众所周知,有限小数是十进分数的另一种表现形式,因此,任何一个有限小数都可以直接写成十分之几.百分之几.千分之几……的数.那么无限小数能否化成分数? 首先我们要明确,无限小数可按照小数部分是否循环分成两类:无限循环小数和无限不循环小数.无限不循环小数不能化分数,这在中学将会得到详尽的解释:无限循环小数是可以化成分数的.那么,无限循环小数又是如何化分数的呢?由于它的小数部分位数是无限的,显然不可能写成十分之几.百分之几.千分之几……的数.其实,循环小数化分数难就难在无限的小数位数.

【The beauty of math】无限循环小数转分数

0.333333... = 1/3 推导过程: 设x=0.333333 10x=3.333333(循环体的数字个数为1) 10x-x=3 x=1/3 所以计算的核心在于确定无限循环的循环体的数字个数. [The beauty of math]无限循环小数转分数,布布扣,bubuko.com

无限循环小数化分数、

循环小数分为混循环小数.纯循环小数两大类. 混循环小数可以*10^n(n为小数点后非循环位数),所以循环小数化为分数都可以最终通过纯循环小数来转化. 等比数列法编辑 无限循环小数,先找其循环节(即循环的那几位数字),然后将其展开为一等比数列.求出前n项和.取极限.化简. 例如:0.333333…… 循环节为3 则0.33333.....=3*10^(-1)+3*10^(-2)+……+3^10(-n)+…… 前n项和为:0.3(1-(0.1)^(n))/(1-0.1) 当n趋向无穷时(0.1)^(

UVA 10555 - Dead Fraction(数论+无限循环小数)

UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,并且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示为n/m形式,并且a为整数部分有c位, b为小数部分有d位 那么aaaaa.bbb...和aaaaabbb....分别可以表示为10c?(n/m)和10c+d?(n/m) 两式相减得:aaaaabbb?aaaaa=(10c+d?10c)(n/m) 那么设n1 = aaaaabbb ,n2 = aaa

一种简单快速的模板解析方法,活用with javascript版

//一种简单快速的模板解析方法,活用with var parseTpl = function( str, data ) { var tmpl = 'var __p=[];' + 'with(obj||{}){__p.push(\'' + str.replace( /\\/g, '\\\\' ) .replace( /'/g, '\\\'' ) .replace( /<%=([\s\S]+?)%>/g, function( match, code ) { return '\',' + code.

把 分数化为循环小数 和 把循环小数化为分数 的方法

今天学习了把分数化为循环小数,以下代码实现的功能是:输入m/n,假设m能被n整除,则直接输出商:否则,输出商以后再输出循环节. #include<cstdio> #include<cstring> const int MAXN = 100005; int a[MAXN], vis[MAXN]; int main() { int n, t, i, m; scanf("%d",&t); while(t--) { memset(vis, 0, sizeof(v