C语言I博客作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11453 |
这个作业的目标 | 加深对for循环的理解,熟悉使用方法 |
学号 | 20209000 |
1.PTA实验作业(15分/题)
1.1求简单交错序列前N项和
题目内容描述:计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和
1.1.1实验代码截图
1.1.2数据处理:
数据表达:整型变量 x,y,i,n。浮点型变量itm,sum
数据处理:表达式和流程结构 item=y*1.0/x; sum=item+sum; y=-y; x=x+3;
1.1.3 PTA提交列表及说明
Q1:整型和浮点型混用。
A1:编译之后及时改正,程序正确。
1.2 求分数序列前N项和
题目内容描述:计算序列 2/1+3/2+5/3+8/5+... 的前N项之和
1.2.1 实验代码截图
1.2.2 数据处理
数据表达:整型变量i,N。浮点型变量sum,item,x,y,t
数据处理:表达式和流程结构 t=y; y=x+y; x=t; item=y/x; sum=sum+item
1.2.3 PTA提交列表及说明
Q1:没有注意到sum是浮点型而用了%d。
A1:编译后发现错误,并及时改正。
1.3求平方根序列前N项和
题目内容描述:计算平方根序列√1+√2+√3+⋯的前N项之和
1.3.1 实验代码截图
1.3.2 数据处理
数据表达:整型变量i,N;浮点型变量sum
数据处理:sum=sum+sqrt(i)
1.3.3 PTA提交列表及说明
Q1:经常忘记结尾的;,导致程序错误。
A1:能迅速找到并快速解决。
2.阅读代码(-5——5分)
const twoSum = (nums, target) => {
const prevNums = {}; // 存储出现过的数字,和对应的索引
for (let i = 0; i < nums.length; i++) { // 遍历元素
const curNum = nums[i]; // 当前元素
const targetNum = target - curNum; // 满足要求的目标元素
const targetNumIndex = prevNums[targetNum]; // 在prevNums中获取目标元素的索引
if (targetNumIndex !== undefined) { // 如果存在,直接返回 [目标元素的索引,当前索引]
return [targetNumIndex, i];
} else { // 如果不存在,说明之前没出现过目标元素
prevNums[curNum] = i; // 存入当前的元素和对应的索引
}
}
}
代码功能:用 1.hashMap 存储遍历过的元素和对应的索引。2.每遍历一个元素,看看 hashMap 中是否存在满足要求的目标数字。3.所有事情在一次遍历中完成(用了空间换取时间)。
代码优点:虽然代码比其他的多一点,但是却有更好的可读性。写代码就像写句子,读起来轻松的代码,自己理解也方便,下次再看的时候,也不会出现“我当时写的是啥,我怎么看不懂”,再敲一遍也不容易出bug。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花费的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 14h | 300行 | 对自己的专业有些了解 | 暂无 |
第二周 | 16h | 500行 | 如何提问 | 暂无 |
第三周 | 19h | 900行 | for的循环及其使用 | 暂无 |