精华内容
下载资源
问答
  • 循环小数第100位是几
    2021-06-29 11:06:35

    一、纯循环小数化分数

    从小数点后面第一位就循环的小数叫做纯循环小数。怎样把它化为分数呢?看下面例题。

    把纯循环小数化分数:

    纯循环小数的小数部分可以化成分数,这个分数的分子是一个循环节表示的数,分母各位上的数都是9。9的个数与循环节的位数相同。能约分的要约分。

    二、混循环小数化分数

    不是从小数点后第一位就循环的小数叫混循环小数。怎样把混循环小数化为分数呢? 把混循环小数化分数。

    先看小数部分0.353

    一个混循环小数的小数部分可以化成分数,这个分数的分子是第二个循环节以前的小数部分组成的数与小数部分中不循环部分组成的数的差。分母的头几位数是9,末几位是0。9的个数与循环节中的位数相同,0的个数与不循环部分的位数相同。

    三、循环小数的四则运算

    循环小数化成分数后,循环小数的四则运算就可以按分数四则运算法则进行。从这种意义上来讲,循环小数的四则运算和有限小数四则运算一样,也是分数的四则运算。

    有限小数化成分数直接将小数点去掉,分母对应化成十百千万等。再约分。

    例如:0.333.....=3/9=1/3

    0.214214214214214....=214/999

    简单说每一个循环节为分子,循环节有几位数分母就写几个9

    0.3333......循环节为3 0.214.....循环节为214

    0.52525252....循环节为52,所以0.525252...=52/99

    0.35....=35/99

    更多相关内容
  • 无限循环小数的加减乘除及无限循环小数转换为分数形式首先讨论后者,如果我们可以把任意无限循环小数都轻易的转换为分数那么它们之间的运算不就简单了么?首先观察0. 3333……我们都知道它是等于是1/3的那么0.1111...

    无限循环小数的加减乘除

    及无限循环小数转换为分数形式

    首先讨论后者,如果我们可以把任意无限循环小数都轻易的转换为分数那么它们之间的运算不就简单了么?首先观察0. 3333……我们都知道它是等于是1/3的那么0.1111……呢,很明显它等于1/9,再观察1/99它等于0.010101……再看1/999它等于0.001001001……耶,那么可以得知0.121212……等于12/99(0.121212……是0.010101……的12倍)而0.456456……就等于456/999。

    对于任意的如同0.123123……的从小数部分的首位就开始循环的循环位数为n的纯小数有由于1=0.999……那么有1除以n个9就等于0.00…100…1……这个数的循环位数就为n如果循环数是a【循环数举例:比如0.123123……的循环数就是123而0.01230123……的循环数是0123(看是0123的话可以避免数错循环数的位数)】那么它的a倍一定就是原来的那个循环小数它就可以表示为a除以n个9。这个理解了的话就可以得出这样的结论{对于任意的从小数部分的首位就开始循环的循环位数为n且循环数为a的纯小数可表示为a除以n个9这样的分数}

    那么继续扩展,对于如0.154123123123……这样的循环小数我们如何用分数表示呢?既然0.123123……等于123/999 而0.154123123……等于0.154+0.123……/1000那么这个问题就解决了呀,那么对于如5.154123123……这样的循环小数不也就知道怎样用分数表示了么。但是有必要对后面提到的两种情况做总结。使我们少浪费一点草稿纸,多在头脑中思考一点,总时间还可以减少呢。

    对于任意的(如同0.0456123123……)循环位数为n的循环数为a 且 小数部分的非循环位数为m的非循环数为b(刚才举的例子的b就是0456或者说是456它的m就是4)的纯小数,它的分数形式是a加上b乘上n个9再除以n个9与10^m的乘积(10^m表示十的m次方)[对于这里的例子0.0456123123……就等于(123+456*999)/(999*10^4)

    对于任意的(如同7.0456123123……)循环位数为n的循环数为a 且 小数部分的非循环位数为m的非循环数为b

    且 整数部分为c(对于前面一个例子c为7)的小数,它的分数形式就是a加上b乘上n个9加上c*9*10^m再除以9*10^m。(即是说7.0456123123……=(123+456*999+7*999*10^4)/(999*10^4)

    那么对于0.111……*0.111……就可以轻易的计算了吧它等于(1/9)*(1/9)=1/81=0.012345679012345679……(其实不一定非要化为小数形式,但是这里的意思就是要化为小数形式)对于很复杂的循环小数的乘除加减通通可以表示为分数然后运算。要是再有计算器就容易多了吧,不过我们用的手机用的科学计算器计算是有小数位数限制的,可能看不出循环位数和循环数,这点要注意。

    小结:其实对于上面的n个9与一个数相乘,由于n个9=10^n-1那么通常就好计算了456*999=456*(1000-1)=456000-456=455544只是在写的时候用这种方式会看起来比较复杂,我就没有选用这种表达式。

    对于如0.123123……+0.111……的计算其实用不着化为分数就可以直接计算它的结果是0.234……我现在通过举例来说明这类不用化为分数的循环小数加法运算的各种类型,自己总结该如何选择和体会计算方法吧

    0.456456456……+0.7272……=0.456456……+0.727272……=1.183729 183729……(456456+727272=1183728)

    那么0.456456……+0.999……=1.456456……

    (其实0.999……=1呀)

    0.123 456456……0.7272……=0.123456 456456……+0.727272 727272……=0.850729 183729183729(123456+727272=850728)

    0.1 456456……0.7272……=0.1 456456456 456456……+0.7272727272 7272……=0.8729183729 183729183729(1456456456+7272727272=8729183728)

    对于0.1 232323……+0.123412341234……它们没法从循环部分的首位对齐,可以更换循环的主部使循环对齐0.1 232323……+0.456745674567……=0.12 3232323232……+0.45 6745674567……=

    0.57 99779977……

    这是由于0.1 232323……=0.12 323232……而0.456745674567……=0.45 6745674567……

    上面是讨论主要是针对对齐循环小数的循环部分的。

    后面是对循环小数的减法分析

    1-0.4……=多少?等于0.6……么?其实等于0.5……因为1不是等于0.999……

    3.515151……-0.222……=3.5151……-0.2222……=3.2929……

    那么3.515151……-0.777……=?

    它等于2+0.999……+0.5151……-0.777……=2+(0.999……-0.777……)+0.51……=2+0.22……+0.51……=2.7373……

    对于3.5151……-5.222……=-(5.2222……-3.5151……)=-(4-3+0.99……-0.5151……+0.22……)=-1.7070……

    3.705151……-5.3222……=-(5.32 2222……-3.70 5151)=-(5.31-3.70)←[9999……-5151……+2222……]=-1.61

    7070…… 其中“←”表示直接在数字末尾加上我这里好用来说明这样写的

    总的来说,减法的总规则是先判定运算结果的正负,①若为正,则将两个小数的循环部分对齐(如5.32 2222……-3.70

    5151中将循环部分对齐),然后从对齐的循环部分开始进行减法运算,如果这部分被减数小的(对于前面的例子2222……<5151……的),要向前借一变成99……(对于前面的例子5.32变为了5.31,在后面补上了99……),然后将其先与减数做差再与被减数相加(9999……-5151……再+2222……),再进行前面的减法,最后组合一下(将7070……放在5.31-3.70所得的结果1.61后即是1.617070……)即可,②如果刚开始判定运算结果为负,那么只需像运算3.705151……-5.3222……那样,添括号并在括号外加负号就转变为①这种情况了,只是最后加负号罢了。

    其实用这种算法来计算循环小数的加减运算可能会比把他们全都化为分数然后运算要简单得多,对于循环小数的乘除运算则刚好相反了,循环小数通常化为分数后乘除比较简单。

    到这里就结束了,除此之外还可以得到一些结论如任何有理数都可以表示为两个整数相除(有理数的定义亦可以从此出发),另外从我的说明方法里也展示了一种探索循序渐进的方法。

    第18期顶岗实习支教藁晋分队 藁城张家庄中学 物理

    何长峻

    展开全文
  • 试题 历届真题 循环小数届】【决赛】【研究生组】

    试题 历届真题 循环小数【第十一届】【决赛】【研究生组】

    资源限制
    内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
    在这里插入图片描述
    思路
    1.0.333之类(只有循环体)
    0.333的循环体的个数为1(即是3),所以分子/分母为3/9=1/3
    0.4242 循环体个数为2(42),分子/分母为 42/99…

    2.0.1233443344之类(循环体前还有数字的)
    0.1233443344=0.12+0.0033443344=12/100+3344/9999/100
    通分之后(12 * 9999 + 3344)/(9999 * 100),再找最大公约数,约分之后就得到结果

    代码:

    #include <iostream>
    #include<math.h>
    using namespace std;
    int getnumb(int a,int b)//得到最大公约数的函数
    {
        return b==0?a:getnumb(b,a%b);
    }
    int main()
    {
        int p,q,num;
        cin>>p>>q>>num;
        int x,y;//分子分母
        int t2=pow(10,q-p+1);//循环前数对应的10的q-p+1次方
        int t1=pow(10,p-1);//循环的数  对应的10的p-1次方
        int numb1=num/t2;//循环前部分的数
        int numb2=num%t2;//循环部分的数
        x=numb1*(t2-1)+numb2;//通分后的分子
        y=(t2-1)*t1;//分母
        int numb=getnumb(x,y);//得到最大公约数,接下来化简x,y
        x/=numb;
        y/=numb;
        cout<<x<<" "<<y<<endl;
        return 0;
    }
    

    202205291524日

    展开全文
  •  我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。  如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。  本题的任务是:在上面的约定下,求整数除法小数点后的n开始的...

    问题描述

      我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
      如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。


      本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。
    输入格式
      一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)
    输出格式
      一行3位数字,表示:a除以b,小数后第n位开始的3位数字。
    样例输入
    1 8 1
    样例输出
    125
    样例输入
    1 8 3
    样例输出
    500
    样例输入
    282866 999000 6
    样例输出
    914
     

    感谢大佬的文章

    原地址:https://blog.csdn.net/wensishuai/article/details/6415658
    求一个分数对应小数的循环节。、

    思路:

    我们分别用x和y表示分子和分母,先求出整数部分x div y和余数部分x mod y,那么小数部分就是重复将余数部分乘以10再进行整除运算和求余运算,直到出现循环或余数为0时结束。
    我们不妨从余数入手,因为小数部分整除的结果是由上一次运算的余数决定的,如果某一次运算产生的余数跟前面产生的余数相同,则说明循环开始。

     

    参考代码:
    #include<stdio.h>
    #define mn 1000
    void main()
    { 
        int i,m,n,r,t;
        int p[mn],q[mn];
    
        for(i=0;i<mn;i++) //给数组p初始化值全为-1
        {
            p[i]=-1;
            q[i]=0;
        }
    
        printf("input :m,n(0<=m<n<=1000)= ");
        scanf("%d%d",&m,&n);
    
        t=0; //初始化值
        r=m; //把被除数赋给r
    
        while(r!=0&&(p[r]==-1)) //循环条件当r不为0且p[r]=-1时执行循环体
        {
            p[r]=t;                //余数r第一次出现的位置
            r=10*r;                //把被除数扩大10倍,以至于取第一个小数
    
            t++;
            q[t]=r/n;            //计算小数点后t位的值:取整,即为m/n的小数从小数点开始逐个取出放到数组q中
            r=r%n;                //算完一位就去掉一位,即取余对n
        }
    
        printf("m/n = 0.");        //因为m<n,所以m/n整数部分0,所以先输出'0.'   
        if (r!=0)                //被除数不为0就执行以下语句
        { 
            for(i=1;i<=p[r];i++)   //输出循环小数中前面非循环的部分
                printf("%d",q[i]);
    
            printf("(");            //输出循环的小数放在括号中
    
            for(i=p[r]+1;i<=t;i++)      
                printf("%d",q[i]); 
    
            printf(")");
        }
        else                    //被除数为0的情况
            for(i=1;i<=t;i++)    //输出不循环的小数
                printf("%d",q[i]);
        printf("/n");
    }
    View Code

     

     


    题目AC代码

    #include<iostream>
    using namespace std;
    const int maxn = (int)2e6+10;
    int p[maxn];    //标记该余数是否出现,并记录该余数是第几个
    int q[maxn];    //存放小数结果
    int loop[maxn]; //存放循环部分
    int a, b, n;
    int main()
    {
        cin >> a >> b >> n;
        int rest = a%b;   //余数
        for (int i = 0; i < maxn; i++){
            p[i] = -1;
            q[i] = 0;
        }
        int len = 0;
        while (rest != 0 && p[rest] == -1){   //余数不为0(未除尽),并且该余数第一次出现
            p[rest] = len++;          //标记这个余数是第几个,p[rest]为不循环部分的长度
            rest *= 10;
            q[len] = rest / b;   //小数的下一位,q[1]为小数后第1位,len可以看做结果的长度(包括不循环部分和循环部分)
            rest %= b;                //余数更新
        }
        //若是因为rest==0而退出while循环,则被除尽,说明结果不是无限循环小数
        //若是因为p[rest]!=-1而推出循环,则说明出现了重复的余数,即会一直执行下去,为无限循环小数
        if (rest == 0){  //如果不是无限循环小数,则转化成无限循环小数,循环部分为0
            p[rest] = len;   
            q[++len] = 0;
        }
        int len_noloop = p[rest];       //不循环的长度
        int len_loop = len - len_noloop;//循环长度=总长度-不循环长度
        if (n > len_noloop){            //如果输出的位置在循环部分
            loop[0] = q[len];           //为方便输出,将循环部分放入loop数组中,并且循环部分最后一位放在loop[0]
            for (int i = 1; i < len_loop; i++)
                loop[i] = q[len_noloop + i];
            n -= len_noloop;            //因为是输出循环部分的数字,所以需要把前面的砍掉
            cout << loop[n%len_loop] << loop[(n+1)%len_loop] << loop[(n+2)%len_loop] << endl;
        }
        else if (n + 2 <= len_noloop){
            cout << q[n] << q[n+1] << q[n+2] << endl;
        }
        else if (n+1==len_noloop){
            cout << q[n] << q[n+1] << q[(n+2)%len_loop] << endl;
        }
        else if (n == len_noloop){
            cout << q[n] << q[(n+1)%len_loop] << q[(n+2)%len_loop] << endl;
        }
        return 0;
    }
    View Code

     

    题解效率

     

     

    转载于:https://www.cnblogs.com/looeyWei/p/10443831.html

    展开全文
  • 无限循环小数都可以化成分数吗

    千次阅读 2021-02-05 14:19:19
    无限循环小数可以化成分数。小e69da5e887aa3231313335323631343130323136353331333365666265数分为两大类:类是有限小数,类是无限小数.而无限小数又分为两类:无限循环小数和无限不循环小数;有限小数都可以表示...
  • 展开全部在数636f70793231313335323631343130323136353331333365666265的分类中,无限循环小数属于有理数。...循环小数的缩写法是将第一个循环节以后的数码全部略去,而在保留的循环节首末两上方各添一个小...
  • 循环小数循环节

    千次阅读 2018-02-07 15:10:47
    1/7 = 0.142857142......本题目要求即是:给出个数字的循环小数表示法。   例如: 输入: 1,5 则输出: 0.2   输入: 1,7 则输出: 0.[142857]   输入: 7,6 则输出: 1.1[6]  
  • 5. 求循环小数

    2022-07-12 10:49:00
    5. 求循环小数
  • 无限循环小数转化分数

    千次阅读 2018-08-09 10:52:47
    给出个无限循环小数以及循环节,求原最简分数,例如输入 5.3 1 表示从小数点后一位开始循环,也就是循环小数是5.33333….. 输出结果是 16/3 分析 其实个简单的数学结论就可以解决这个问题, 循环节有几位,...
  • 循环小数

    2020-05-13 18:30:00
    给定一个分数,判断其是否是一个无限循环小数,并输出它的第一个循环节。 例如:分数 1/3 是一个无限循环小数第一个循环节为 3;而 2/5 不是一个无限循环小数。 输入格式 不多于 100 行,每行一个 m/n 形式的分数...
  • 循环小数如何化分数众所周知,有限小数是十进分数的另种表现形式,因此,任何个有限小数都可以直接写成十分之、百分之、千分之……的数。那么无限小数能否化成分数?首先我们要明确,无限小数可按照小数部分...
  • 蓝桥杯Python 试题 历届真题 循环小数届】 #试题 历届真题 循环小数届】【决赛】 #欧几里得算法(辗转相除法) 求最大公约数 def gcd(a,b): if a < b: a,b = b,a elif a==b: return 1 while...
  • 2895. 循环小数

    2020-04-05 17:29:16
    给定一个分数,判断其是否是一个无限循环小数,并输出它的第一个循环节。 例如:分数 13 是一个无限循环小数第一个循环节为 3;而 12 不是一个无限循环小数。 输入格式 不多于 100 行,每行一个 m/n 形式的分数(0...
  • =1000),判断分数m/n是有限小数还是循环小数 解题思想: 循环小数必定会出现余数相同的情况,有限小数不可能出现余数相同的情况 //0<=m<n<=1000,m/n #include"stdio.h" #include"stdlib.h" #include...
  • 循环小数转化为分数

    2020-03-22 08:33:41
    循环小数 例如: 0.(214) ...结论:纯循环小数转化为分数,分子为个循环节表示的数,分母各位为9,分母的位数为循环节的位数。 混合循环小数 例如: 6.35(3) 0.35(3)*1000=353.(3)① 0.35(3)*10...
  • 所以需要模拟除法的过程,以n/m为例:n >= m:商上n // m,n = n % mn 商上n * 10 // m,n = n * 10 % m(笔算一下100/3的过程就可以推导)同时,题目给出了剪枝条件,要么是有限小数,要么是无限循环小数如何处理...
  • 展开全部在数32313133353236313431303231363533e58685e5aeb931333365666265的分类中,无限循环小数属于有理数。...循环小数的缩写法是将第一个循环节以后的数码全部略去,而在保留的循环节首末两上方各...
  • n≤1000),判断分数m/n是有限小数还是循环小数。 如果m/n是有限小数,则输出分数的值;如果m/n为循环小数,则把循环部分括在括号中,并打印输出。 代码: #include<stdio.h> bool f(int n) //判断是否是有限还是...
  • C语言将循环小数/有限小数转换为分数

    千次阅读 多人点赞 2018-12-24 01:18:19
    早在小学的时候我就对循环小数非常感兴趣,加上初中和高中对循环小数可以说有一定基础研究,因此想到写个将循环下小数转换为分数的程序,非常有意思,并且对初学者来说,它的输入输出格式的转换也是大难点。...
  • python中如何表示个无限循环小数?(不用分数的形式) python,使用range语www.zhiqu.org 时间: 2020-12-07只能用分数或者你自己设计个对象,保留指定长度的有效range()只能产生int无法产生float但是可以曲线...
  • 输入第一行包含两个整数 p 和 q,表示 S 的循环节是小数点后第 p 到第q 。 第二行包含一个 q 位数,代表 S 的小数部分前 q 。 【输出格式】 输出两个整数,用一个空格分隔,分别表示答案的分子和分母。 【样例...
  • 「EOJ」2895 循环小数

    2022-04-16 15:35:57
    给定一个分数,判断其是否是一个无限循环小数,并输出它的第一个循环节。 例如:分数 13 是一个无限循环小数第一个循环节为 3;而 12 不是一个无限循环小数。 输入格式 不多于 100 行,每行一个 m/n 形式的分数...
  • 分数化循环小数(纯/混)

    千次阅读 2018-03-01 01:12:23
    查了一下除了字符串查找没看到别的解法,自己写了个,要考虑一些特殊情况,比如除0,负数等等,时间复杂度n^2,小数点长度N大于万就慢了,感觉哪里还能再优化一下,最多跑过11111111/59595961,一共591万,...
  • 循环小数 uva202

    2017-01-11 18:06:14
    题目名称:循环小数题目描述:输入整数a和b a大于等于0小于等于3000,b大于等于1小于等于3000,输出a/b的循环小数表示以及循环节长度。如果循环周期大于50,只显示50,之后的全部用……表示样例:Alt text 题目分析...
  • 公式第一种:这个公式必须将循环节的开头放在十分。若不是可将原数乘10^x(x为正整数)就为:12.121212……-0.121212……=12100倍 - 1倍 =99 (99和12之间一条分数线)此公式需用两数字,其中两数差出一个循环...
  • 小数第nnn[思维] time limit per test memory limit per test input output 1 seconds 256 megabytes standard input standard output Description: 我们知道,整数做除法时,有时得到有限小数,有时...
  • 小数第n

    2021-02-16 13:41:06
    问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。 本题的任务是:在上面的约定下,求整数除法小数点后的n开始的3...
  • 小数循环

    2020-10-30 15:19:50
    本题目要求即是:给出个数字的循环小数表示法。 例如: 输入: 1,5 则输出: 0.2 输入: 1,7 则输出: 0.[142857] 输入: 7,6 则输出: 1.1[6] 用户输入的格式是: 整数,整数 每个整数范围均为:1~1000 程序输出两...
  • 看到大神的个处理方式,惊艳到了,所以记录下来~~~~~ public static boolean isNonterminating(){ try{ BigDecimal bigA=new BigDecimal(1); BigDecimal bigB=new BigDecimal(3); System.out.pr

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,092
精华内容 23,636
热门标签
关键字:

循环小数第100位是几