PAT乙级
NoN小旻
整理一下自己的笔记
展开
-
PAT乙级 1057 数零壹 (20分)
1057 数零壹 (20分)难点:无重点:使用getline获取一行数据,因为可能包含空格。#include<iostream>#include<string>#include<math.h>using namespace std;int main(){ string s; getline(cin,s); int sum = 0;...原创 2020-04-26 16:32:32 · 144 阅读 · 0 评论 -
PAT乙级 1054 求平均值 (20分)
1054求平均值(20分)不是难题,需要注意所有条件,避免漏错误条件【思路】直接对输入的串进行判断。判断的几个错误分支:1.超过了[−1000,1000] 区间。2.小数点后位数超过两个3.不是数字4.小数点超过一个最后使用全局的变量,存储正确个数和平均值。【碰到的问题】1.没看清楚条件,最后测试点0,3错误?如果只有1个正确数字要求和,输出的是n...原创 2020-03-17 16:15:30 · 184 阅读 · 0 评论 -
PAT乙级 1053 住房空置率 (20分)
1053住房空置率(20分)[难点]对于可能和一定空的条件判断需要仔细读题所有的问题都是因为条件判断出错导致的。其它没有难点[问题]1.如何输出小数点后1位的数字?使用printf("%.nf“,x),n表示小数点后几位。2.输出不了%?printf输出%需要两个%%[代码]#include<iostream>using namespace st...原创 2020-03-16 16:43:35 · 119 阅读 · 0 评论 -
PAT乙级 1052 卖个萌 (20分)
1052卖个萌(20分)感觉20分的题目拿满分还是有点难度的。测试点2又没有通过。。不知道原因测试点2没有通过是因为我把continue写成了break!!!!!!【思路】首先提取出各个部分的表情符号。获取输入,在每一个输入时判断是否超出,如果超出警告,没有则对应输出表情。【碰到的问题】1.如何提取表情部件? 遍历每行,把位于[]中间的存为一个string,放入另一...原创 2020-03-14 17:35:35 · 198 阅读 · 0 评论 -
PAT乙级 1049 数列的片段和 (20分)
1049数列的片段和(20分)第一个方法测试点2,3超时,太简单粗暴了,但是最好理解。o(n3)#include<iostream>#include<string>#include<vector>using namespace std;int main(){ int sum = 0; float all = 0; cin >&...原创 2020-03-12 19:48:03 · 130 阅读 · 1 评论 -
PAT乙级 1047 编程团体赛 (20分) & 1048 数字加密 (20分)
1047编程团体赛(20分)vector在初始化大小的时候使用(),不是[].#include<iostream>#include<string>#include<vector>using namespace std;int main(){ int sum = 0; cin >> sum; vector<int&...原创 2020-03-11 20:27:05 · 162 阅读 · 0 评论 -
PAT乙级 1042 字符统计 (20分) & 1043 输出PATest (20分) & 1044 火星数字 (20分)
1042 字符统计 (20分)需要注意的是,如果直接输入cin>>a;会导致string a变成一个string数组,而不是单纯的字符串,所以需要使用getline(在string的头文件里,需要添加)#include<iostream>#include<string>using namespace std;int main(){ str...原创 2020-03-09 13:13:03 · 237 阅读 · 0 评论 -
PAT乙级 1037 在霍格沃茨找零钱 (20分) & 1038 统计同成绩学生 (20分) & 1039 到底买不买 (20分)
1037在霍格沃茨找零钱(20分)看起来是个简单题目,但是搞半天,但是也学到了很多问题的解决方法。1.输入字符串,并且是由数字组成,需要分别使用几个区间的数字,第一种:方法string接收,然后划分区间。第二个:使用scanf输入,可直接保存在对于变量中。2.这次遇到了C4996问题,即不安全函数无法运行,可以使用xxxxx_s,例如:scanf_s,ctime_s。但是平台好...原创 2020-03-08 16:15:09 · 173 阅读 · 0 评论 -
PAT乙级 1032 挖掘机技术哪家强 (20分) & 1033 旧键盘打字 (20分)
1032挖掘机技术哪家强(20分)只需要注意数组个数要取大,不然最后一个测试点出错。#include<iostream>#include<string>#include<vector>using namespace std;int main() { int sum = 0; cin >> sum; int bian =...原创 2020-03-06 22:50:40 · 92 阅读 · 0 评论 -
PAT乙级 1027 打印沙漏 (20分) & 1028 人口普查 (20分) & 1029 旧键盘 (20分)
1027 打印沙漏 (20分)感觉比较复杂的部分就是输出的条件判断,其他还好。分成上下两部分即可#include<iostream>using namespace std;int main(){ char c; int sum = 0; int ceng = 0, yu = 0,temp=1; cin >> sum >> c; if ...原创 2020-03-05 21:19:11 · 102 阅读 · 0 评论 -
PAT乙级 1022 D进制的A+B (20分) &1023 组个最小数 (20分) & 1024 科学计数法 (20分)
1022 D进制的A+B (20分)取值范围确定,因为int的取值范围在,可直接使用int类型#include<iostream>#include<stack>using namespace std;int main(){ int a, b,d; cin >> a >> b>>d; int all = a...原创 2020-03-04 16:30:12 · 114 阅读 · 0 评论 -
PAT乙级 20分题目总结 C++(未完待续)
这份总结在我开始写20分的题目就开始了。我用到的知识点:15分题目中出现的输出指定格式(一般是时间hh:mm:ss)使用printf("%nmd",temp),printf("%.2f",temp) int和string的相互转化:s->i:std::stoi(x),i->s:std::to_string(x) 简化题目的小方法:设置标记字段,方便...原创 2020-03-18 09:12:39 · 225 阅读 · 0 评论 -
PAT乙级 1017 A除以B (20分) & 1018 锤子剪刀布 (20分) &1019 数字黑洞 (20分)
1017 A除以B (20分)其实我觉得这题就不简单,可能是我没有刷过题目,使用正常的手算的方式来解题即可。这个位置是最关键的。把第i位或者第i-1位的余数作为被除数和除数相除。int temp1 = temp / b;aa[i] = temp1;//除数的结果保存到aatemp = temp % b * 10 + (a[i + 1] - '0');#include<io...原创 2020-03-03 18:06:30 · 170 阅读 · 0 评论 -
PAT乙级 1012 数字分类 (20分) & 1013 数素数 (20分) & 1014 福尔摩斯的约会 (20分) & 1014 福尔摩斯的约会 (20分)
1012数字分类(20分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A1= 能被 5 整除的数字中所有偶数的和; A2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算n1−n2+n3−n4⋯; A3= 被 5 除后余 2 的数字的个数; A4= 被 5 除后余 3 的数字的平均数,精确...原创 2020-03-02 17:21:10 · 181 阅读 · 0 评论 -
PAT乙级 1007 素数对猜想 (20分) & 1008 数组元素循环右移问题 (20分) & 1009 说反话 (20分)
1007 素数对猜想 (20分)让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输...原创 2020-03-01 18:42:22 · 201 阅读 · 0 评论 -
PAT乙级 15分题目总结
我是用C++写的代码,只需要了解以下几个知识点就可以做出绝大部分的15分题目for循环 简单的STL 例如:vector。(vector非常好用,很多情况下不知道确定的数组长度,没法用array) 简单设置输出格式 例如:输出小数点后N位,输出固定长度数字 简单函数和class的编写 string类型的几个特点。例如:可以直接做个位数加减法只是需要减去‘0’(原理为ASCII码)等等...原创 2020-02-29 16:29:16 · 212 阅读 · 0 评论 -
PAT乙级 1086 就不告诉你 (15分) & 1091 N-自守数 (15分)
1086就不告诉你(15分)做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。这个应该是比较简单的方法,同样也可以使用的string翻...原创 2020-02-29 16:18:57 · 1237 阅读 · 0 评论 -
PAT乙级 1076 Wifi密码 (15分) & 1081 检查密码 (15分)
1076 Wifi密码 (15分)下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每...原创 2020-02-28 23:54:39 · 955 阅读 · 0 评论 -
PAT乙级 1066 图像过滤 (15分) & 1071 小赌怡情 (15分)
1066图像过滤(15分)图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格式:输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0<M,N≤500),另外是待过滤的灰度值区间端点A和B(0≤A<B≤255)、以及指定的替换灰度值。随后M行...原创 2020-02-28 21:37:36 · 128 阅读 · 0 评论 -
PAT乙级 1056 组合数的和 (15分) & 1061 判断题 (15分)
1056组合数的和(15分)给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1<N<10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出...原创 2020-02-27 16:50:17 · 144 阅读 · 0 评论 -
PAT乙级 1046 划拳 (15分) & 1051 复数乘法 (15分)
1046划拳(15分)划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(≤100),随后...原创 2020-02-27 16:11:04 · 121 阅读 · 0 评论 -
PAT乙级 1036 跟奥巴马一起编程 (15分) & 1041 考试座位号 (15分)
1036 跟奥巴马一起编程 (15分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:...原创 2020-02-26 17:41:24 · 172 阅读 · 0 评论 -
PAT乙级 1031 查验身份证 (15分)
1031 查验身份证 (15分)这个题目改来改去还是部分正确,望大神指教!!!一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 ...原创 2020-02-26 16:44:40 · 278 阅读 · 0 评论 -
PAT乙级 1021 个位数统计 (15分) & 1026 程序运行时间 (15分)
1021个位数统计(15分)给定一个k位整数N=dk−110k−1+⋯+d1101+d0(0≤di≤9,i=0,⋯,k−1,dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 ...原创 2020-01-29 15:24:43 · 167 阅读 · 0 评论 -
PAT乙级 1011A+B 和 C (15分) & 1016 部分A+B (15分)
1011 A+B 和 C (15分)给定区间 [−231,231] 内的 3 个整数A、B和C,请判断A+B是否大于C。输入格式:输入第 1 行给出正整数T(≤10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出Case #X: true如果A+B&g...原创 2020-01-29 14:30:38 · 170 阅读 · 0 评论 -
PAT乙级 1006换个格式输出整数 & 1004成绩排名
1004读入n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。感觉写的有点复杂了,但是主要是练习vector和class#include <iostream>#include<vector>#include<string>using namespace std;class st//学生类{publ...原创 2020-01-14 19:03:16 · 182 阅读 · 0 评论 -
PAT乙级1001 害死人不偿命的(3n+1)猜想 & 1002
1001卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在...原创 2020-01-08 18:33:28 · 154 阅读 · 0 评论