问题 |
答案 |
这个作业属于那个课程 |
C语言程序设计II |
这个作业要求在哪里 |
C语言I博客作业08 |
我在这个课程的目标是 |
熟练掌握C语言 |
这个作业在哪个具体方面帮助我实现目标 |
学会并熟练掌握了while循环 |
参考文献 |
Markdown基本语法 |
一.PTA实验作业
1. 求整数的位数及各位数字之和
题目内容描述:对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10的9次方的正整数N。
####### 输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
(1)数据处理
数据表达:
用了整形变量R,N,i=0,sum=0
N是用户传入的要求计算的数
sum、i分别用来保存用户要求输出的正整数N的位数和用户要求输出的正整数N的各位数字之和
R用来取余
数据处理:伪代码
定义变量N来放用户传入的要求计算的数,R用来取余,i用来保存用户要求输出的正整数N的位数并且对它初始化为0,sum用来保存用户要求输出的正整数N的各位数字之和并且对它初始化为0,
输入数N
while(N>0)
取出N的最后一位数赋值给R
将去除N最后一位数后的数后赋值给N
计算N的位数赋值给i
将N的各位数字加起来赋值给sum
end while
输出题目要求的正整数N的位数和N的各位数字之和
end
(2)实验代码截图
(3)造测试数据
输入数据 |
输出数据 |
说明 |
10001 |
5 2 |
数字中间有连续0 |
999999999 |
9 81 |
最大N |
1 |
1 1 |
最小N |
982 |
3 19 |
随机实验 |
(4)PTA提交列表及说明
提交列表说明
1.编译错误:从编译器上复制粘贴的时候不知道出了啥问题导致编译错误,第二次复制粘贴就对了。
2. 整除光棍
题目内容描述:这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1
、11
、111
、1111
等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111
就可以被13
整除。 现在,你的程序要读入一个整数x
,这个整数一定是奇数并且不以5
结尾。然后,经过计算,输出两个数字:第一个数字s
,表示x
乘以s
是一个光棍,第二个数字n
是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x
为止。但难点在于,s
可能是个非常大的数 —— 比如,程序输入31
,那么就输出3584229390681
和15
,因为31
乘以3584229390681
的结果是111111111111111
,一共15
个1
。
输入格式:
输入在一行中给出一个不以5结尾的正奇数x(<1000)。
输出格式:
在一行中输出相应的最小的s和n,其间以1个空格分隔。
输入样例:
31
输出样例:
3584229390681 15
(1)数据处理
数据表达:用了变量x=0,s=1,n=0,i=0
x为用户要求输入的值
s用来储存符合要求的最小光棍
n用来储存最小光棍的位数
数据表达:伪代码
定义变量x用来放用户要求输入的值,s用来储存符合要求的最小光棍并且对它初始化为1,n用来储存最小光棍的位数并且对它初始化为0
输入题目要求的x
while(1)
if(s/x>0||i) Then 输出s/d 对i加上1后赋值给i
if(s%x==0) Then 输出n+1
else
对将s除以x的余数赋值给s
对n加上1并赋值给n
end whlie
end
(2)实验代码截图
(3)造测试数据
输入数据 |
输出数据 |
说明 |
999 |
111222333444555666777889 27 |
最大x |
111 |
1 3 |
x是光棍 |
1 |
1 1 |
最小x |
(4)PTA提交列表及说明
提交列表说明
1.部分正确:因循环太多次超过了规定的0.40S时间限制,未做改动。
2.部分正确:重新整理思路在while中加入一个if和一个if-else语句使循环次数减少
二.代码互评
同学(彭杰)代码:
同学(柏朝晖)代码
自己代码:
比较
(1)第一份代码用了数组而我只用了while语句,结构上该同学的更加整洁美观,但我的更加简单。
(2)第二份的代码有23行,而我的只有15行所用空间更少。
(3)第二份用的for循环与if-else语句,而我只用了while循环,我的代码更简单,容易懂。
三.学习总结
1.学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第四周 |
7小时 |
100行 |
在屏幕上显示Hello World! |
暂无 |
第五周 |
8小时 |
100行 |
求华氏温度对应的摄氏温度 |
暂无 |
第六周 |
30小时 |
200行 |
如何用 MinGW-w64 来编译C程序 |
暂无 |
第七周 |
24小时 |
300行 |
运用if语句完成各种数学程序 |
对于&&的用法不了解 |
第八周 |
24小时 |
300行 |
学会了for循环语句 |
暂无 |
第九周 |
24小时 |
300行 |
学会了如何去自定义一个函数 |
暂无 |
第十周 |
30小时 |
400行 |
学会了if-else语句的嵌入 |
对“(Y%100)这个表达式意味着当Y不能整除4时(Y%100的余数不等于0时)表达式为真”这句话不是很懂 |
第十一周 |
24小时 |
450行 |
学会了如何去使用switch语句来做编程题 |
暂无 |
第十二周 |
24小时 |
450行 |
学会了如何去使用while循环来做编程题 |
对字符型的输入不太了解 |
2. 累积代码行和博客字数
时间 |
博客字数 |
代码行数 |
第四周 |
510 |
100 |
第五周 |
510 |
200 |
第六周 |
1149 |
400 |
第七周 |
2027 |
700 |
第八周 |
3791 |
1000 |
第九周 |
5294 |
1300 |
第十周 |
6900 |
1700 |
第十一周 |
8614 |
2150 |
第十二周 |
10495 |
2600 |
|
|
|
3 .学习内容总结和感悟
(1)学习内容总结
(2) 学习体会
这一次虽然PTA题目比上一次多了2题但是我还是很快的做完了,说明在慢慢的进步,虽然数学思维有点跟不上,但是我会继续努力的。虽然这次博客园更新导致未能在8点前提交让我心态有点炸了,但是我没有产生反正已经加不了分了慢慢拖着做的想法。