0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
-学习C语言程序基本组成
include<stdio.h> //编译预处理命令
include<math.h> //使用数学函数
int main()
{ int a; //定义了一个整型变量a;
scanf("%d", &a); //输入变量a
if (a%2==0) { //判断a是否为偶数;
printf("yes"); //若a为偶则输出yes;
}
else {
printf("no"); //其余情况输出no;
}
return 0; //结束程序运行。使用0用来检查程序运行是否正常;
}
1.2 本章学习体会
-刚入门确实很多难以理解,因为以前从未接触过,但mooc视频和老师的讲解对学习C语言帮助很大,学习速度也有所提升。
-打代码确实是一件头疼的事情,有时觉得代码很完美,却出现错误,且难以寻找错误的根源,找错误是一个艰难的过程。
-两周pta大概570行
2.PTA实验作业
2.1 三个数由小到大输出
1.数据处理
用了a,b,c三个整型变量,先考虑三个数据的大小关系,进行排序然后分别赋值给x,y,z。
2.代码截图
3.本题可扩展功能
进行直接赋值引入新的变量h,然后将x的值赋予h,再进行其他变量的赋值,可以省去a,b,c的定义过程。
4.PTA提交列表及说明
2.2 计算天数
1.数据处理
使用了4个整型变量year, month, day, number,根据判断闰年及单双月的情况计算天数。
2.代码截图
3.本题可扩展功能
此题可使用if-else语句,使代码变得简洁,如单双月可以以8月为分界线,小于八月的单月都为31日。
4.PTA提交列表及说明
2.3 回文数
1.数据处理
虽然只使用了一个变量a,但此题充分考查了对于%号的使用,个位与万位相同,十位与千位相同。
2.代码截图
3.本题可扩展功能
此题和水仙花数有异曲同工之妙,若将此题改为寻找水仙花数且个位与万位相同的数,会有所难度。
4.PTA提交列表及说明
一开始出错因为对%的理解不够充分而出错。
3.阅读代码
class Solution {
public:
int reverse(int x) {
}
};
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
弹出和推入数字 & 溢出前进行检查
思路
我们可以一次构建反转整数的一位数字。在这样做的时候,我们可以预先检查向原整数附加另一位数字是否会导致溢出。
算法
反转整数的方法可以与反转字符串进行类比。
我们想重复“弹出” xxx 的最后一位数字,并将它“推入”到 rev ext{rev}rev 的后面。最后,rev ext{rev}rev 将与 xxx 相反。
要在没有辅助堆栈 / 数组的帮助下 “弹出” 和 “推入” 数字,我们可以使用数学方法。