C语言I博客作业08
这个作业是属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 学到更多的语言编程技术 |
这个作业在那个具体方面帮助我实现目标 | 熟悉while 与dowhile语句 |
参考文献 | 无 |
1.PTA实验作业
1.1:7-5 爬动的蠕虫 (15 分)
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
1.1.1数据处理
数据表达:定义了N,U,D,t,x整型变量
数据处理:
while(x<N) //while 语句循环 判定条件为当x行驶的距离小于N时循环
x=x+U; //
t++; //爬行1分钟
if(x>=N) //爬完后距离大于了井深,跳出循环
break;
x=x-D;
t++; //休息一分钟 x减去滑行时间
printf("%d",t);
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
12 3 1 | 11 | 正确 |
8 2 1 | 8 | 正确 |
8 3 1 | 4 | 正确 |
1.1.4 PTA提交列表及说明
1.答案错误:一开始做题时思考的简单了,直接用U-D来表示,但时间只累加一次,所以错误。
2.多种错误,编译错误:尝试修改分别考虑下滑与爬行,期间就多次尝试,大意漏了分号。
3.部分错误:这里要求不足1分钟按1分钟计,所以我的if 条件判断时漏了x=N的情况。
1.2 7-6 整除光棍 (20 分)
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。
1.2.1数据处理
数据表达:
for(i=1;; i++) //运用for循环 用i来计位数。
x=x*10+1; //x进行累加乘10加1,进行光棍数。
if(x>=n) //判断了x>n
printf("%d",x/n);//用x/n 来输出结果。
x=x%n; //当x取余后等于0,则为整数输出。
if(x==0)
break;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
11 | 1 2 | 正确 |
121 | 9182736455463728191 22 | 正确 |
1.2.4 PTA提交列表及说明
这个题目我真的百思不得其解,这个最大光棍测试点到底是什么,我测试了很多组数据我都没有发现我漏考虑了哪个点。
加上了一个printf (“0”)的情况后这个测试点就全部正确了。我十分不解。明明最初的商等于0的情况已经可以不用
考虑了,但是为什么最后还要考虑之后商等于0的情况?
2.代码互评
同学代码:
自己代码:
1.在这个题目中getchar()相比scanf会更加简便,它可以考虑到空格的情况。而scanf()在读取数字时会跳过空格、制表符和换行符。getchar()是直接接收一个字符。
2.因为用的输入方式不同,所以用getchar()更为简便。
3.学习总结
3.1 学习进度条
日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/7--10/13 | 5个小时 | 80 | 学到了if语句 | 暂无 |
10/13--10/20 | 5个小时 | 100 | 学习for循环语句 | 暂无 |
10/20--10/27 | 5个小时 | 98 | 学习了函数定义 | 暂无 |
10/27--11/03 | 8个小时 | 196 | 学习了if分支语句,与逻辑符号先后 | 暂无 |
11/03--11/10 | 9个小时 | 210 | 学习了switch语句 | 暂无 |
11/10--11/17 | 9个小时 | 240 | 学习了while 与dowhile语句 | pta的整除光棍的最大光棍测试点 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
最初的对于代码的陌生到现在对代码逐渐熟练,我觉得这跟平日里的刷题与批改作业有着密不可分的联系。
小小的一段代码能体现你的思路流程,逻辑思维,为了一个测试点反复推敲。这是敲代码带给我的好奇乐趣。
刷题最喜欢看到的就是最后提交时全部正确的红字,快感和成就感十分充实。但是最近状态有所下滑,晚自习
也没有之前那么刻苦的去自学python,而是时不时的看看手机,自控力出现下降的情况。希望下周能有所好转。