这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11756 |
这个作业的目标 | 回顾数据类型和表达式并学习十二章“文件” |
学号 | 20209202 |
2.1 题目:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。
例如:
N=2,写下1,2。这样只出现了1个”1“。
N=12,我们会写下1,2,3,4,5,6,7,8,9,10,11,12。这样,1的个数是5。
问题是:
1.写出一个函数f(N),返回1到N之间出现的”1“的个数,比如f(12)=5;
1.1代码图片
1.2解题思路
1.因为是整数所以要用整数类型,然后用for循环,
2。确定了类型开始深入题目,求有多少个1的总和首先我觉得要分层运算,先定义一个N,然后用while循环进行。
1.3 测试数据及其运算时间。
测试数据 运算时间 运算结果
10 | 1.886s | 2 |
---|---|---|
100 | 2.232s | 21 |
1000 | 2.451s | 301 |
10000 | 2.589s | 4001 |
100000 | 3.534s | 50001 |
1.4思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。
在运行过程中我们发现数字越大运算时间越长,浪费的时间就越多,所以我们要简化运算过程,如何简化我能想到的就是把数据分类化成一个方程式,这个方程式运用于所有整数中。这样运算的时间就会大大减少。
1.5.满足条件”f(N)=N“的最大的N是多少?
最大的数字是1,根据int的取值范围最大放入代码中得出最大数是1。
二
2.2 将上题中多组测试数据写入文件,并给出测试程序以检测你的代码有没有问题,贴出你的代码、运行结果和文件内容。(5分)
代码截图
运行结果
文件内容
2.3 用自己的语言回答两个问题,并给出所查阅资料的引用(10分)
1.什么是文件缓冲系统?工作原理如何?
缓冲系统 buffer system 一般弱酸或弱碱与其盐(强电解质)的混合物显有缓冲作用,具有这种作用的系统称为缓冲系统。在缓冲系统中虽有的以固态加入,但大多数情况全部物质都进行溶解,此称为缓冲液(buffer solution)。
2.什么是文本文件和二进制文件?
文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。
三
3.1 本周学习总结
周/日期 | 这周花的时间 | 代码行数 | 学到的知识简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 一天 | 74 | 如何读取文件 | 半懂 |
3.2 累积代码行和博客字数(5分)
3。3 学习内容总结和感悟(5分)