c语言||博客作业01
作业头
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
|---|---|
| 这个作业要求在 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
| 这个作业的目标 | 文本文件的读写 |
| 学号 | 20209043 |
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;
要求:
贴出代码图片,写出解题思路,列出测试数据(5分)

解题思路:
个位数为1的有1,11,21等等,最特别的就是其他位子上存在1,所以就将一个数拆分,依次相加起来。丛0开始到n,依次相加。因此,本题分为一个拆分,一个循坏两个组合起来的。
测试数据
| 输入数据 | 输出数据 |
|---|---|
| 13 | 6 |
| 9 | 1 |
2.满足条件”f(N)=N“的最大的N是多少?
要求:
贴出代码图片,写出解题思路,列出测试数据(5分)
不会,真的不会。
2.给出不同测试数据的运算时间,如果你的运算时间不变,说明你的测试数据不够大(5分)



3.思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。(10分)
寻找高效运算算法,目前自会这种拆分和循环结合的。其他的还没有想到。
2.2 将上题中多组测试数据写入文件,并给出测试程序以检测你的代码有没有问题,贴出你的代码、运行结果和文件内容。(5分)



2.3 用自己的语言回答两个问题,并给出所查阅资料的引用(10分)
1.什么是文件缓冲系统?工作原理如何?
文件缓冲系统: 由于系统对磁盘文件数据的存取速度与内存数据存取访问的速度不同,而文件数据量较大,数据从磁盘读取到内存或从内存写到磁盘文件不可能瞬间完成,为了提高数据存取访问的效率。系统分配一块文件缓存区,程序与磁盘通过文件缓存区来存取,当使用时会开辟一个512B的扇形区域,使用完后该内存空间就会被释放。
工作原理:系统会先开辟一块缓冲区,当系统想读取文件时候,不会直接对硬盘进行读取,而是先打开数据流,将硬盘上的文件信息拷贝到缓冲区buffer内,然后程序再从缓冲区中读取所需数据。
2.什么是文本文件和二进制文件?
文本文件:是以字符ASCII码值进行存储与编码的文件,其文件的内容就是字符。
二进制文件:是存储二进制数据的文件
2.4 请给出本周学习总结(15分)
1 学习进度条(5分)
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 3月1日——3月7日 | 五小时左右 | 一百不到 | 无 | 以前的一些知识点 |
2 累积代码行和博客字数(5分)
| 时间 | 博客字数 | 代码行数 |
|---|---|---|
| 第一周 | 1804 | 87 |
![]() |
3 学习内容总结和感悟(5分)
1.温故而知新很重要,提前预习也是有必要。


浙公网安备 33010602011771号