C语言II—作业01

这个作业属于哪个课程 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分)

原文地址:https://www.cnblogs.com/hvhghjjy/p/14482320.html