![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PAT乙级题目整理
整理自己在做题过程中的所思所想,方便日后查看
一勺黑猫
正在努力学习算法和后端。技术有限,多多指教~
展开
-
1019 数字黑洞——c++实现
1. 题目介绍2. 思路一直以为输入的数肯定是四位正整数,所以一开始创建了大小为4的数组。后来发现输入的数字位数不确定,所以用int或string比较好。由于要排序,用int输入的话,也要再放到数组里。3. 具体代码实现ac代码#include<iostream>#include<string>#include<algorithm>using namespace std;bool cmp(int a, int b) { return原创 2021-08-21 22:28:48 · 1542 阅读 · 0 评论 -
1017 A除以B——c++实现
1. 题目介绍2. 思路题目考的是手动计算除法,用循环依次计算每次的商和余数即可。自己写的算法总是有一个用例无法通过,只能得18分。后来发现是忽略了1/2的情况。之前对于第一次的商为0的情况,是不输出这个0的。但若最终的商只有一位,那么这个0就要输出。3. 具体代码实现#include<iostream>#include<string>using namespace std;int main(){ string in; //被除数原创 2021-08-21 20:10:40 · 421 阅读 · 0 评论 -
1014 福尔摩斯的约会——c++实现
1. 题目介绍2. 思路该题就是寻找两个字符串中符合要求的相同的字符,星期:A~G小时:0~9或A~N分钟:a~z或A~Z由于星期的判定条件包含在小时中,所以我设了一个flag标志位,用来判断是否已找到星期的字符3. 具体代码实现#include<string>using namespace std;int main(){ string s1,s2,s3,s4; cin>>s1>>s2>>s3>&原创 2021-08-21 14:36:18 · 251 阅读 · 0 评论 -
1011 A+B和C——c++实现
1. 题目介绍 2. 思路要注意整数的范围,本题的范围是-2^31~2^31,而int 型的范围是-2^31~2^31-1,做加法运算会越界,所以可以用double或long(8byte)类型。3. 具体代码实现#include<iostream>using namespace std;int main(){ int n; cin>>n; double a,b,c; //定义为double类型,防止越界 for(int原创 2021-08-21 14:17:20 · 299 阅读 · 0 评论 -
1013 数素数——c++实现
1. 题目介绍2. 具体代码实现#include<iostream>using namespace std;bool isPrime(int num){ if(num<=1) return false; for(int i=2;i*i<=num;i++) if(num%i==0) return false; return true;}int main(){ int m,n; int prime[10000]原创 2021-08-21 13:40:58 · 349 阅读 · 0 评论 -
1010 一元多项式求导——c++实现
1. 题目介绍2. 思路此题的难点在于要将零多项式表示出来。零多项式出现的条件是只输入一个系数和指数,且指数为0。但我们无法单靠指数为0来判断它的导数是否为零多项式,因为非零多项式的常数项指数也为0。参考大佬代码,设了一个flag。作用有两方面:一是判断是否已经有输出,若已有输出,则需先输出一个空格;二是判断是否既无输出且指数为0,即判断导数为零多项式的情况。3. 具体代码实现#include<iostream>using namespace std;int mai原创 2021-08-21 12:40:25 · 1273 阅读 · 0 评论 -
1009 说反话——c++实现
1. 题目介绍2. 思路我想的是用字符串来存储单词,但还没养成使用栈、队列等的习惯,所以创建了大小为80的字符串数组。然后利用循环,依次将首尾字符串对换的方式实现句子的倒序。参考大佬的代码后,发现使用栈就方便多了。新技能get√3. 具体代码实现使用字符串数组:#include<iostream>#include<string>using namespace std;int main(){ string word[80]; //字符串原创 2021-08-21 12:06:37 · 539 阅读 · 0 评论 -
1008 数组元素循环右移问题 ——c++实现
1. 题目介绍2. 具体代码实现开始用了很笨的方法,要用四次循环进行移动。费劲巴拉写完,结果发现有两个用例未通过,以为是移动的过程在哪里出了错。参考大佬代码时发现,原来是M可能大于N!omg,所以一定要加上M%=N这句,怪自己考虑不周qaq下面是我改后的满分代码,虽然麻烦些,但是自己思考的,还是想有个记录#include<iostream>using namespace std;int main(){ int num[200]; //因为要将前step个数原创 2021-08-15 17:20:48 · 1402 阅读 · 0 评论 -
1007 素数对猜想 ——c++实现
1. 题目介绍2. 具体代码实现#include <iostream>using namespace std;int isPrime(int num) //判断是否为素数{ if(num<=1) return 0; for(int i=2;i*i<=num;++i) if(num%i==0) return 0; return 1;}int main(){ int num; cin>>nu原创 2021-08-15 12:45:02 · 214 阅读 · 0 评论 -
1006 换个格式输出整数 ——c++实现
1. 题目介绍2. 具体代码实现#include<iostream>using namespace std;int main(){ int n; cin>>n; for(int i=0;i<n/100;i++) cout<<"B"; n%=100; for(int i=0;i<n/10;i++) cout<<"S"; n%=10; for(in原创 2021-08-15 12:12:02 · 101 阅读 · 0 评论 -
1005 继续(3n+1)猜想 ——c++实现
1. 题目介绍2. 具体代码实现#include<iostream>#include<algorithm> //sort函数using namespace std;bool test(int n,int in){ //判断in是否被n覆盖 while(n!=1){ if(n%2==0) n/=2; else n=(3*n+1)/2; if(in==n) return true; } return false;}.原创 2021-08-15 12:06:57 · 296 阅读 · 0 评论 -
1004 成绩排名 ——c++实现
1. 题目介绍2. 具体代码实现#include<iostream>#include<string>using namespace std;struct Student{ //定义存储学生信息的结构体 string name; string id; int score;};int main(){ int n; cin>>n; Student s[1000]; int max=0,min=原创 2021-08-15 11:48:29 · 419 阅读 · 0 评论 -
1003 我要通过 ——c++实现
1. 题目介绍2. 具体代码实现#include<iostream>#include<string>#include<map>using namespace std;int main(){ int n; string s; cin>>n; while(getchar()!='\n'); for(int i=0;i<n;i++){ getline(cin,s); //如果原创 2021-08-15 11:29:35 · 213 阅读 · 0 评论 -
1002 写出这个数 ——c++实现
1.题目介绍2. 思路这道题目较好理解,只是实现起来有几点要注意:(1)正整数的范围。题目中规定n<10^100,这是个很大的数字。long long类型最大到2^63-1,也远小于这个数。但我最开始没有考虑这一点,用的long long。参考别人的代码时发现有用char型数组的,或者干脆直接用char进行循环读入的,最终我采用后者方式,感觉这样不会占用太多内存。(2)将求和结果转为汉语拼音输出。这就需要对整形的求和结果进行单个数字的拆分。我开始想的是将数字转换为int数组。如果用原创 2021-08-13 16:30:03 · 614 阅读 · 1 评论 -
1001 害死人不偿命的(3n+1)猜想 ——c++实现
最近在看有关计算机求职方面的文章,了解到大厂在面试时都会出一些算法题,猛然发觉算法的重要性。又专门找了提升算法能力的文章,准备从PAT乙级题目做起。做了几道题发现对于c++确实有些生疏了,还有一些细碎的知识,尤其是输入流关于空格回车的地方,还是有些混乱的。通过一遍一遍调试,以及参考网上的解答方法,在自己的代码上拼拼凑凑,所幸做出一些题,受益匪浅。但怕以后会忘记,所以想通过CSDN,把这些做题过程记录下来,以便日后查缺补漏。下面是我做的第一道题。1. 题目介绍 2. 思路这道题还算比较基.原创 2021-08-13 15:26:07 · 411 阅读 · 2 评论