C语言1博客作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11455 |
这个作业的目标 | 做一个学习总结,清楚自己掌握了什么,学习优秀代码 |
学号 | 20209053 |
一.PTA实验作业
1.1 求简单交错序列前N项和
1.1.1实验代码截图
1.1.2
数据表达:用了整型变量d,f,N,i,双精度浮点型变量sum,item。N是用户输入的值,i的最大值由N决定。item的值根据题目有规律得变化,sum的值通过累积叠加得到。
数据处理:表达式:item=f*1.0/d;sum=sum+item;f=-f;d=d+3.
流程结构:for循环结构
1.1.3 PTA提交列表及说明
Q1:前面根据自己的理解打的代码,结果运行超时。然后根据书上打代码,输出结果是对的,提交却显示答案错误。
A1:自己研究了好久,不小心在scanf("%d",&N)前加了个N=10,就对了。
1.2求分数序列前N项和
1.2.1实验代码截图
1.2.2
数据表达:用了变量N,z,m,sum,item。z和m的值是根据题目有规律的变化得到的。N是用户输入的值。
i初始值为1,最大值是由N决定。sum和item初始值和变化值由其他变量所决定。
zi,mu,N,i,sum,item都是双精度浮点型。
数据处理:表达式:item=z/m;sum=sum+item;z=z+m;m=z-m.
流程结构:for循环结构
1.2.3 PTA提交列表及说明
Q1:除了和第一题一样的问题,还有数据处理的问题。
A1:一直修改自己的代码,把z,m都改成了浮点型
1.3电子汪
1.3.1实验代码截图
1.3.2
数据表达:用到了整型变量A,B,sum,i。A,B的值由用户输入,i的最大值由sum决定,sum的值由A和B决定。
数据处理:表达式:sum=A+B.
流程结构:for循环结构
1.3.3PTA提交列表及说明
Q1:不知道怎么让输入的"Wang!"的个数等于sum的数值
A1:直接搜提百度的,for循环结构就行了,太难了
二.阅读代码
找一份优秀代码,理解代码功能,并讲出你所选代码有点及可以学习的地方.
题目:计算并返回x的平方根,其中x是非负整数。
代码:
public class Solution {
public int mySqrt(int x) {
long left = 0;
long right = x / 2 + 1;
while (left < right) {
long mid = left + (right - left + 1) / 2;
long mid = (left + right + 1) >>> 1;
long square = mid * mid;
if (square > x) {
right = mid - 1;
} else {
left = mid;
}
}
return (int) left;
}
}
刚看的时候确实很懵逼,后来看了别人的评论,就有了以下的看法。
- 针对特殊测试用例 ,它把搜索的范围设置成长整型;
- 为了照顾到 0 把左边界设置为 0 。
- 为了照顾到 1 把右边界设置为 x/2 + 1 。
- while语句后选了右中位数,是为了防止代码会进入死循环。
我们打代码也要考虑到各种可能导致运行错误的原因,然后想出对应的解决方法。
三.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周 | 两天 | 203 | 循环判断结构 | 不会调试 |
3.2累计代码行和博客字数
3.3学习感悟
- 自己真的是一个超级超级菜鸟,一定要多花时间去学
- 打代码的速度还是比较慢,每天必须打打代码
- 该记的东西不能忽略