PAT乙级题库总结
pat乙级考试
2020年12月5日。pat乙级考了98分,在四舍五入那题扣了两分。总的来说,不是很理想,不过下次我准备考甲级了。这个遗憾没办法弥补了。
下面是我对题库一些题的感悟。我是之前就做完pat乙级题库的,开考前一周又刷了50题。
考场注意事项
考试模式是线上考试,3个小时内不许上厕所,考试前不要多喝水。
手机要一直充电保持有电,同线上考场的有个同学因为手机没电没办法继续考试了。
乙级1001至1054的题目
1001 简单,不用重复做。
1002 简单
1003 困难,值得重复做。
1004 简单
1005 值得做
1006 简单
1010 值得看一下柳神代码,在输入里做处理,while(cin>>a>>b)
1011 简单,long long 8字节
1012 简单,精度问题
在c语言中,double类型的读入必须用"%lf";输出必须用"%f"
printf("%.2f",...)
1013 简单,判断素数
1014 简单,注意范围,一周7天,一天24个小时,不能直接用A-Z,而是A-G,A-N
1015 sort,cmp函数
1016 简单,用string装长整数
1017 简单
1018 简单
1019 值得看一下柳神代码
sort可以排string类型:string s="8980";sort(s.begin(),s.end(),cmp)
1020 测试点2,正数,没说是正整数,审题!价格和库存都是double才行
1021 简单,数组做哈希表
1022 简单
1023 简单
1024 字符处理,理清逻辑
1025 可能有无效节点,柳神代码值得学习
1026 四舍五入用round(),或者结果+0.5,再转int
1027 简单
1028 字符串比较,可以直接用比较运算符;看清楚题目,不要看错条件了。
1029 ascii码占用一个字节,有256个取值:用数组做哈希表。
1030 注意数字范围,long long;超时问题,for循环适当处break
1031 简单
1032 简单
1033 坏键有可能为空,此时不能用cin,而是要用getline(cin,str)
1034 困难,值得看,最大公约数
1035 困难,插入排序,归并排序,值得看
1036 简单
1037 scanf格式输入:scanf("%d.%d.%d", &gp, &sp, &kp);
1038 简单
1039 简单
1040 有几个pat,值得看
1041 简单,使用map做hash,map<int,string>hash1
1042 getline读取一整行,不能cout<<'a'+1,而是char c='a'+1;cout<<c;
1043 简单
1044 stringstream字符串转数字,头文件<sstream>;
getline(cin,s),getline第一次会读取n,而不是第一个string,所以要先getline一次;
substr(index,len)
map<string,int>哈希表
1045 困难,超时问题,看柳神代码
与排好序的数组进行比较,并与左边最大值比较。
第2行:说明即使是0个主元,也要输出空行
1046 简单
1047 数组做哈希表,scanf读取scanf("%d-%d %d", &a, &b, &c);
1048 小于两个字符串的最小长度,可以int i=0;while(i<a.length()&&i<b.length()){ ... i++;}
难点:如果a,b长度不等,长度不等的地方补0
a<b可以不做操作;a>b时要对b左补0
例如12333 999,其实是12333 00999
1049 double不行用long double,printf("%.2llf",res);
1050 顺时针打印数组,用leetcode的方法;sqrt头文件#include <cmath>
1051 复数乘法,当A或者B小于0但是大于-0.01(比如-0.00001)时候,
如果按照A>=0的判断,会输出“-0.00”这样的结果,事实上应该输出“0.00”
【B同理,应该输出“+0.00i”】
1052
输出‘\’:'\'是转义字符,要cout<<"\\"才行
序号从1开始,但是用户的输入可能是负数和0
1053 %也是转义字符,要输出%%
1054
合法输入的个数刚好为1,
这里特别需要注意的是最后输出是number而不是numbers,这里容易看错
1089 狼人杀,值得做,看柳神代码