一.表格
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | C语言I博客作业10 |
| 我在这个课程的目标是 | 把C语言学精,熟练掌握编程技术,努力找到<span style="color:red">简单代码的写法</span> |
| 这个作业在哪个具体方面帮助我实现目标 | PTA上做题,devc++慢慢掌握调试,加强对于<span style="color:red">循环语句for与if-else以及嵌套的理解与应用</span> |
| 参考文献 | 百度百科,<span style="color:red">其他同学作业,《C Primer Plus》,教科书,伪代码的写法</span> |
二.本周作业
1.PTA实验作业

1.1<span style="color:red">梅森数</span>
题目内容描述:<span style="color:red">形如2ⁿ−1的素数称为梅森数(Mersenne Number)。例如2²−1=3、2³−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2³¹−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2ⁿ−1的梅森数。</span>
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2ⁿ-1的梅森数,每行一个。如果完全没有,则输出“None”。
输入样例:
6
输出样例:
3
7
31
1.1.1<span style="color:blue">数据处理</span>:
- <span style="color:blue">数据表达</span>:<span style="color:red">n,i,j,sum(变量)</span>;运算,赋值(怎么来);<span style="color:red">int(整型)</span>
- <span style="color:blue">数据处理</span>:
定义变量n来放正整数,i来放1——n之间所有数,j来放素数因子,sum来放梅森数。
输入正整数
if(n==1)
判断是否有梅森数。
没有便输出"None"
for(i=2;i<=n;i++)
i赋值等于2进入循环;循环结束一轮后,若i小于等于n,i便在原来的基础上+1,再次循环。
sum=pow(2,i)-1;
for(j=2;j<=sum/2;j++)
素数因子不会超过本身的二分之一。
if(sum%j==0)
判断是否为素数。
不是便跳出循环。
if(sum%j!=0)
判断是否为素数。
是便输出梅森数,并换行。
程序结束。
1.1.2实验代码截图

1.1.3造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 6 | ![]() |
题目样例 |
| 1 | None | 不符合题目给出条件 |
| 10 | ![]() |
最小二位数 |
| 19 | ![]() |
输入给出最大数 |
1.1.4PTA提交列表及说明

题目说明:这个题目与以前作业求素数类似,我在Devc++上面写,写了几分钟就出来了。不过老是有错误,是我自己没看题目,在最后加了换行说明,答案便对了。
1.2 <span style="color:red">同构数</span>
题目内容描述:<span style="color:red">一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。</span>
输出格式:
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:
1 5 6 25 76 376 625
1.2.1<span style="color:blue">数据处理</span>:
- <span style="color:blue">数据表达</span>:<span style="color:red">i(变量)</span>这题只需要用if-else嵌套就行,所以只需要设置一个变量;赋值(如何来);<span style="color:red">int(整型)</span>
- <span style="color:blue">数据处理</span>:
定义变量i来放1——1000所有正整数
for(i=1;i<=1000;i++)
保证1到1000所有数进入循环
if(i*i%10==i)
判断一位数是否为同构数
空6列输出同构数
else
if(i*i%100==i)
判断两位数是否为同构数
空6列输出同构数
else
if(i*i%1000==i)
判断三位数是否为同构数
空6列输出同构数
程序结束
1.2.2实验代码截图

1.1.3造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 无 | 1 5 25 76 376 625 | 程序自动输出 |
1.1.4PTA提交列表及说明

这个题为这次挑战题,但仔细阅读题目便知道,这和上次作业计算分数差不多。我在Dev上写,每次都答案不对,再仔细看题目,原来还要输出6列才行。加上了,答案便和题目样例一模一样。
2.代码互评
2.1.1 同学代码截图①

2.1.2自己代码截图①

- <span style="color:red">我们的不同之处</span>.
- 这位同学和我思路差不多,只是我用的是<span style="color:red">if-else嵌套结构</span>,他只用一个<span style="color:red">if-else</span>然后包括所有条件即可输出。
- 他是把<span style="color:red">平方数定义为n</span>,然后直接输出,而我直接用一个<span style="color:red">变量i表示所有条件</span>。
- 我应该有时候运用他<span style="color:red">这种总和条件</span>的知识,看着很长,但有时候挺好用的。
2.2.1同学代码截图②

2.2.2自己代码截图②

- <span style="color:red">我们的不同之处</span>.
- 他的思路和我差不多,不过表达有些偏差。
- 他用<span style="color:red">count计梅森数</span>;我是直接当n输入为1时,输出<span style="color:red">None</span>。
- 最后判断素数方法有点<span style="color:red">不一样</span>,他<span style="color:red">for循环判断j的最大值没有除以2</span>后面也用了一次;我是前面用了,后面判断直接是否等于0。
- 他的这种思维<span style="color:red">更加简单</span>,不过逻辑没有我<span style="color:red">紧密</span>。
3.学习总结
3.1学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 十/26/11-29/11 | 2天 | 110 | <span style="color:red">对循环语句for,if-else加强理解以及对嵌套掌握更加熟练</span> | 还有点不清楚字符怎么用 |
| 九/19/11-22/11 | 3天 | 100 | <span style="color:red">break语句,continue语句用法和区别</span> | 不太清楚字符怎么用 |
| 八/12/11-15/11 | 3天 | 120 | <span style="color:red">while和do-while循环语句用法和概念</span> | 暂时没有 |
| 七/5/11-8/11 | 3天 | 140 | <span style="color:red">switch语句用法</span> | 如果x为浮点型,y,z为整型为什么x=y/z答案不对 |
| 六/28/10-2/11 | 3天 | 130 | <span style="color:red">嵌套if-else语句,格式以及如何应用</span> | 不太清楚Devc++怎么调试 |
| 五/22/10-25/10 | 3天 | 100 | <span style="color:red">用法如何定义函数,格式以及如何应用</span> | 暂时没有 |
| 四/15/10- 18/10 | 3天 | 80 | <span style="color:red">循环结构,流程图,数学函数</span> | 数学公式的表达,为什么整数除以变量有一个要用括号括起来还要乘以1.0 |
| 三/9/10-13/10 | 3天 | 70 | <span style="color:red">if-else,&&用法,字母%用法,数学函数</span> | PTA每次答案错误,都十分难找出来。不得已重打 |
3.2累计代码行和博客字数

3.3学习内容总结和感悟
3.3.1学习内容总结

3.3.2学习体会
- 这周主要进行<span style="color:red">对上周作业的巩固</span>,以及分析同学的代码。
- 彭老师让我们写完代码后,尽量想想有没有更简单代码,也要尽量考虑<span style="color:red">时间复杂度</span>,也就是代码运行的时间。
- 再过2周就要考试了,我得抓紧时间复习了,不懂的问题,我要虚心请教,不过也要用<span style="color:red">提问的智慧</span>。
- 我觉得可以在实验课的时候,彭老师能用<span style="color:red">实例再次教一下我们调试,,</span>因为真的很多人不会。。
来源:oschina
链接:https://my.oschina.net/u/4295888/blog/3340007


