一,PTA实验报告
题目一:PTA 7-27计算两个数的最大公约数和最小公倍数。
1.设计思路:两个数的最大公约数可以使用辗转相除法,先用i和j把两个数保存下来,再使用个循环把两个数的最大公约数求出来,用较大数除去较小数,再求余数,再用较小数除去第一个余数得到第二个余数,如此反复,知道余数变成0,最后的被除数既是最大公约数。
最小公倍数即是两数之积除去最大公约数。
2.本题pta提交列表
3.本题代码截屏
4.本题调试中遇到的问题
1.不能理解辗转相除法出现了以下情况
原因:x,y的位置反掉了,导致y不会出现等于0的情况,所以是个死循环。
题目二:pta7-16 小于m的最大十个素数
1.设计思路:首先,先输入一个数n,要有一个循环找到小于它的十个素数,素数只能被一和本身整除,所以还需要一个循环来产生1到n之内的j被n除。从而判断n是否是素数。所以要有个循环不断产生小于n的整数。
2.本题pta提交列表
3.本题代码截屏
4.本题调试过程
原因:i是不断减小的,而j是不断增加的,而在这个代码里我用的是j--,所以实现不了找素数,并且答案错误。
题目三:pta7-7计算阶乘和
1.设计思路:先求出每个数的阶乘,再把这些数的阶乘相加。一个数的阶乘是从1到它自身的总乘积。即用一个循环让产生从一到这个数的整数进行相乘产生该数的阶乘,再用一个循环把这些阶乘相加。
2.本题提交列表
3.本题代码截屏
4.本题调试过程
问题1:阶乘出现的值比实际值小,经过检查发现是j<=i,而不是j<i.
问题2:在第二个for内多加了个大括号,导致数值变大。
二.截图pta本周的最后排名
三.同学代码结对互评
互评同学名称:黄月浩
我的代码
这一题是统计素数并求和。
我的代码先判断是否为素数,然后如果判断后不是是素数的话,继续执行下一个数,黄月浩的代码也是先判读素数,但是她判断素数的方法和我不一样,也比我更加简洁,方便。她用if(flag)执行循环,很有效。
比较起来我的代码更长一点,我更喜欢黄月浩的代码,更简洁还能很好实现效果。
四.本周学习总结
1.在很多地方运用到了for循环和while循环。
2.明白了while和for循环的区别,理解了两者的不同,在有明确结束条件的时候选择for循环更加简洁,能把多个语句放到一个括号内,while循环在循环次数不限的时候比较有效。
3.对switch语句的运用不够多,在以后的学习中要多加尝试。
4.对语句的结束和开始掌握的不大好。
5.对考试结果不大满意,平时打代码不大主动,自己修改自己的代码比较困难。希望自己在以后的学习中更加勤奋,更加耐心。把以前不懂的知识点弄明白,不清楚的搞懂。