精华内容
下载资源
问答
  • 循环小数

    2021-01-27 16:22:21
    定义一个循环小数缩写为整数部分+小数点+非循环节部分+(循环节部分)。 例如: 2.96666666… 缩写为2.9(6) 35.223232323…缩写为35.2(23) 你能输出一个循环小数中小数点后第n位的数字吗? 输入格式 第一行,...

    传送门已损坏

    题目描述

    定义一个循环小数缩写为整数部分+小数点+非循环节部分+(循环节部分)。
    例如:
    2.96666666… 缩写为2.9(6)
    35.223232323…缩写为35.2(23)
    你能输出一个循环小数中小数点后第n位的数字吗?

    输入格式

    第一行,输入一个整数n(n<=100000),表示求小数点后的第n位。
    第二行,一个字符串,用缩写法表示的一个循环小数。

    输出格式

    输出一行一个整数,表示循环小数中小数点后第n位的数字。

    输入样例(1)

    10
    352.19(7)
    

    输出样例(1)

    7
    

    输入样例(2)

    5
    7328.(192)
    

    输出样例(2)

    9
    

    主要思路

    这是一道简单的模拟题。如果遇到小数点,就开第一个锁。如果遇到一个左括号,就关第一个锁,开第二个锁,然后记录。如果遇到一个右括号,就关第二个锁,开第二个锁,然后记录。

    ——————AC代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,p,k;
    string s,q,h;//q为非循环节部分,h为循环节部分
    int main(){
    	cin>>n;
    	cin>>s;
    	for(int i=0;i<s.size();i++){
    	    if(k){
    			if(s[i]==')')k=0;
    			else h+=s[i];
    		}
    	    if(p){
    	    	if(s[i]=='(')p=0,k=1;
    	    	else q+=s[i];
    		}
    		if(s[i]=='.')p=1;
    	}
    	if(n<=q.size())cout<<q[n-1];
    	else cout<<h[(n-q.size()-1)%h.size()];
    	//cout<<endl<<s<<endl<<q<<endl<<h;
    	return 0;
    } 
    

    ——————————QAQ

    展开全文
  • 自创算法读取循环小数小数部分,还包括获取字符串所有子集。
  • 概念描述现代数学:循环小数的定义一般有如下两种:①从小数点后某一位开始不断地重复出现一个或一节数字的十进制无限小数,叫作循环小数或无限循环小数:被重复的一个或一节数字称为循环节。循环小数的缩写法是将第...
    4dacf9b58ddbf4484e4dd047c643065b.png

    一.概念描述

    现代数学:循环小数的定义一般有如下两种:

    ①从小数点后某一位开始不断地重复出现一个或一节数字的十进制无限小数,叫作循环小数或无限循环小数:被重复的一个或一节数字称为循环节。循环小数的缩写法是将第一个循环节以后的数字全部略去,而在第一个循环节首末两位上方各添一个小点。如3.258258258......=3.258(2和8上添一个小点)。

    循环小数分为两大类:混循环小数和纯循环小数。

    混循坏小数:循环节不是从小数部分第一位开始的循环小数,如3. 258(5和8上添一个小点)。

    纯循环小数:循环节从小数部分第一位开始的循环小数,如3.258(2和8上添一个小点)。

    ②公理化定义:

    循环小数是无限小数的一种特殊形式。对一个无限小数0.a1a2…an。…,若能找到两个正整数s≥0,t>0,使得as+i=as+kt+i。(i=1,2,…,t;k=l,2,…)成立,则称此无限小数为循环小数,记为0.a1a2...ass+1...s+t。对于一个循环小数而言,满足上式的s,t值有无数多个,如果取其中最小的s,t值,则称as+1as+2...as+t为这个循环小数的循环节,t称为循环节的长度;若最小的s=0,则这个循环小数称为纯循环小数;如果最小的s>0,则相应的循环小数称为混循环小数,并把小数点之后至循环节之前的部分a1a2...as称为非循环节。任何一个循环小数必可化为分数。

    从数学的观点看,第一个定义通俗易懂,小学数学教材的表述与其相似。第二个定义科学严谨,体现了循环小数的本质。

    小学数学:2005年人教版教材五年级下册的第28页明确指出:一个数的小数部分,从某一位起,一个数字或者几个数字依次不断地重复出现,这样的小数叫作循环小数。

    这与"循环小数"在现代数学中的第一个定义是基本上一致的。在小学数学教材中考虑到学生的认知,不提及十进制,而是默认为十进制无限小数。

    二.概念解读

    循环小数是在实际度量和生产生活中产生的。在度量和均分时,往往会出现这样的情况:

    在除法中,两个数相除,如果得不到整数商,一般会有两种情况:一种得到有限小数,一种得到无限小数。在结果唯一的前提下,为了保证除法运算通行无阻,的确需要引进一种新的数,这样分数便应运而生。

    循环小数其实是有理数的小数表现形式。比如三分之一、七分之二等简单的分数,在生活实际中有时又需将分数表示为小数,进而会出现循环小数。

    有时根据需要可以将循环小数化为分数。这有两种情况:

    一个纯循环小数的小数部分可以化成这样的分数:分子是一个循环节所表示的数;分母的各位数字全是9,9的个数等于一个循环节中数字的个数。

    一个混循环小数的小数部分可以化成这样的分数:分子是第二个循环节以前的小数部分的数字所组成的数,与小数部分中不循环部分的数字所组成的两数之差;分母的前几位数字全是9,9后面的数字全是0,9的个数等于一个循环节中的数字个数,0的个数等于不循环部分数字的个数。

    三.教学建议

    循环小数是学生较难理解和表述的一个概念,特别是表达其意义的一些抽象说法,如"循环"、"无限"等。因此,教学中教师要通过情境的创设,帮助学生理解概念。

    (1)循环小数的意义可通过直观体验突破难点

    黄爱华老师在教学循环小数时,以"从前有座山,山上有座庙,庙里有个老和尚,老和尚对小和尚说:从前有座山,山上有座庙,庙里有个老和尚,老和尚对小和尚说……"这个故事引入。学生在接着讲故事的生动有趣的情境中,感受着、体验着循环小数所具有的"无限"、"依次"、"不断"、"重复"等本质特点,使抽象的数学概念具体化。同时,教师用直观形象的方法在课的开始扫除了障碍,使难点分散,为下面学习循环小数的意义做好了铺垫。

    (2)循环小数的意义通过除法计算不断完善

    故事引入后,黄老师出示两条信息:"乌龟6分钟爬70米,蜗牛11分钟爬9.4米",让学生独立计算乌龟和蜗牛的速度。(70÷6=11.66……,9. 4÷11=0. 85454……)

    有些学生算了一会儿就停下了笔,有的怀疑老师出错了题---他们发现这样算下去永远都除不完,这正是学生通过计算初步体验循环小数的无限。

    黄老师进而引发学生思考"你为什么不继续除下去?你遇到了什么情况,发现了什么规律?",以引导学生通过观察竖式发现其中的规律,让学生在计算实践中发现问题并尝试解决,通过讨论交流理解概念。计算过程中,让学生亲身经历循环小数产生的过程,能够使其加深对循环小数的理解,充分感受到循环小数是无限的。至此,黄老师再让学生说一说什么是循环小数。有了前面的直观体验,再通过计算的实践,学生通过交流就能够不断完善循环小数的意义。

    接着,师生通过讨论"该怎样表示这两道题的商呢?",由此得出循环小数的一般记法。

    一般来说,学生的表示方法可能有以下几种,教师可以结合学生的四答讨论循环小数的记法

    70÷6=11.6…… (表示小数部分无限,但未表示数字的重复)

    70÷6=11. 66666…… (可以这样表示,但太麻烦了,不用写那么多"6")

    70÷6=11.6 (6上添一个小点;循环小数的简便记法)

    70÷6=11. 66…… (既表示无限,又表示了"6"这个数字不断重复)

    这是让学生积极寻找解决表不循环小数的方法。这一过程突出了知识的形成过程,揭示了简写背后蕴含的道理,使学生掌握其简写的方法。

    四.推荐阅读

    (1)《数学辞海·第一卷》(裘光明,山西教育出版社,2002)

    该书第29页有对"循环小数"及其相关概念的详细解读。

    (2)《听名师讲课:数学卷》(雷玲,广西教育出版社,2004)

    该书第42-43页有黄爱华老师对循环小数的教学片段及评析。

    展开全文
  • 循环小数即为有理数的小数表示形式,例:定理:一个分母为N的循环小数的循环节位数最多不超过N-1位。(1) 化为分数的方法我先想到用高中的等比数列的和求极限方式求取(a1/(1-q))。 (2)利用长除法可以将分...

    一.引入

    偶然在网上看见的,手痒了,就试了试,哈哈。。。。。。。做出来了,实际就是模拟。

    下面的来自维基百科:循环小数是从小数部分的某一位起,一个数字或几个数字,依次不断地重复出现的小数。

    循环小数即为有理数的小数表示形式,例:

    951770e06756273e73f9f7a6d75c4822.png

    定理:一个分母为N的循环小数的循环节位数最多不超过N-1位。

    (1) 化为分数的方法

    我先想到用高中的等比数列的和求极限方式求取(a1/(1-q))。

    530b03d6858784a872bfc09bd636317b.png

    (2)利用长除法可以将分数(有理数)转化为循环小数。                         dfed7d5f655ac5ce086272bb9700a06a.png

    091631951db751868b46d2c8922c293b.png

    二.Java实现

    import java.util.Arrays;

    public class Xiaoshuo {

    //使用char类型可以省内存也可以直接存储小数点

    static char[] ch = new char[20];

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Arrays.fill(ch,'#');

    int a = 5;

    int b = 4;

    int index = 0;

    //在函数外部做处理方便多了

    if(a>=b) {

    if(a%b==0) {

    System.out.println(a/b+".0");

    return ;

    }

    System.out.print(a/b);

    ch[0] = '.';

    index = 1;

    a = a%b;

    }else {

    ch[0] = '0';

    ch[1] = '.';

    index = 2;

    }

    solve(index,a,b);

    }

    private static void solve(int index, int a, int b) {

    // TODO Auto-generated method stub

    //判断余数(你也可以叫商,好好看除法过程)是否出现过

    int from = -1;

    int to = -1;

    while(from==-1) {

    a *= 10;

    //必须加上48

    ch[index++] = (char)(a/b + 48);

    //不能再找到自身,所以需要第二个参数

    from = tell((char)(a/b+48),index-2);

    a = a%b;

    }

    to = index -2;

    for(int i=0; i

    System.out.print(ch[i]);

    }

    System.out.print("{");

    for(int i=from; i<=to; i++) {

    System.out.print(ch[i]);

    }

    System.out.println("}");

    }

    private static int tell(char mod, int xiabiao) {

    // TODO Auto-generated method stub

    //先找到小数点后一位

    char c = ch[0];

    //index必须从0开始,因为有可能第一个就是小数点

    int index = 0;

    while(c!='.') {

    index++;

    c = ch[index];

    }

    //index是小数点的位置,所以从下一位开始

    index++;

    //采用while(mod1=‘#’)循环不行,这样是最好的,既有下标,又到非法字符处结束(前提是数组比较大,填充了非法字符)

    for(int i=index; i<=xiabiao; i++) {

    if(mod==ch[i])

    return i;

    }

    return -1;

    }

    }

    三.感悟

    在函数外部先做数据处理化成统一格式方便多了。。。。。。。

    展开全文
  • 无限循环小数和无限不循环小数

    千次阅读 2016-06-21 16:20:01
    无限不循环小数 任何分数转换为小数,要么为有限小数,要么是无限循环小数。 0. 有理数和无理数无理数:无限不循环小数,和开根开不尽 有理数:整数和分数(有限小数,无限循环小数)1. 无限循环小数17=0....

    小数的分类:

    • 有限小数
    • 无限小数
      • 无限循环小数
      • 无限不循环小数

    任何分数转换为小数,要么为有限小数,要么是无限循环小数

    0. 有理数和无理数

    无理数:无限不循环小数,和开根开不尽
    有理数:整数和分数(有限小数,无限循环小数)

    1. 无限循环小数

    17=0.142875142875

    2. 无限不循环小数

    制造无限不循环小数:

    0.1212212221222221

    每一循环节中,2 的数目比前一个多 1.

    几乎所有的小数都是无理数。

    展开全文
  • 找到小数部分的循环小数,如果它是一个数636f70793231313335323631343130323136353331333366306464字循环,就在这个数字的上面点一个点;如果2个数字循环,就在这两个数字上面分别点一个点;如果出现2个以上数字的,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,261
精华内容 1,704
关键字:

循环小数