PAT乙级刷题指南
刷PAT乙级题目,来逐步提高自己的编程能力!
努力弥补运气
学习
展开
-
【PAT乙级】1008 数组元素循环右移问题 (20 分) C++实现
题目描述:完整代码如下:#include<iostream>using namespace std;int main(){ int N,M,t,k; cin >> N >> M; int a[N]; for(int i = 0;i<N;i ++ ){ cin >> t; k = (i+M)%N; a[k] = t; } for(int j=0;j<N-1;j++){ cout << a[j] <原创 2022-02-27 10:31:18 · 431 阅读 · 0 评论 -
【PAT乙级】1024 科学计数法
文章目录1.题目描述2.题目分析3.代码演示1.题目描述2.题目分析此题不是很难,知识分的情况比较多,分类讨论时细心点,不要少讨论某系情况。3.代码演示#include<iostream>#include<cstring>#include<algorithm>using namespace std;void a1(int x,int y,string str){ //缩小 cout << "0."; x--; while(x!原创 2022-04-29 22:28:03 · 321 阅读 · 0 评论 -
【PAT乙级】1023 组个最小数 (20 分)
文章目录1.题目描述2.题目分析3.代码演示1.题目描述2.题目分析先将这些若干非0的数存放在一个数组b中,用sort()函数将其从小到大排好序,如果0的个数为0,直接输出b数组;否则将这些0依次插入最高位后面。3.代码演示#include<iostream>#include<algorithm>#include<math.h>using namespace std;bool cmp(int a,int b){ return a<b;}in原创 2022-04-23 16:07:30 · 200 阅读 · 0 评论 -
【PAT乙级】1021 个位数统计
文章目录1.题目描述2.题目分析3.代码演示1.题目描述2.题目分析此题比较简单,这里给的整数范围比较大,把它当做字符串处理,然后逐个比较就可以。3.代码演示#include<iostream>#include<string.h>using namespace std;int main(){ string s; cin >> s; int a[10]={0},b[10]={0}; for(int i=0;i<s.size();i++){原创 2022-04-20 22:53:59 · 74 阅读 · 0 评论 -
【PAT乙级】1022 D进制的A+B
文章目录1.题目描述2.分析思路3.代码演示1.题目描述2.分析思路一个十进制整数数转换为任意进制数,让该十进制整数除以要转化的进制基数,最先得到的余数为转化结果的最低位,最后取得余数为最高位。3.代码演示#include<iostream>using namespace std;int main(){ int A,B,C,D,j=-1; char s[30]; cin >> A >> B >> D; C=A+B; do{原创 2022-04-22 22:32:36 · 196 阅读 · 0 评论 -
【PAT乙级】1020 月饼
文章目录1.题目描述2.题目分析3.代码演示1.题目描述2.题目分析首先每一个种类的月饼都有库存量 ,总售价,以及单价这三个属性,所以要用到结构体。注意一下题中虽然没说单价,但要获得最大收益一定是把单价最贵种类的月饼先卖掉,如果卖完,再买第二贵的月饼。3.代码演示#include<iostream>#include<algorithm>using namespace std;typedef struct Y{ double a; //库存量 double e原创 2022-04-19 22:47:54 · 361 阅读 · 0 评论 -
【PAT乙级】1019 数字黑洞 (20 分)
1.题目描述解题思路先说下对这道题的感想吧。刚开始做感觉也挺简单的,不就是排序吗?用sort()函数就可以啊,结果才发现,在提交的时候出现了很多问题,刚开始每个测试用例都运行超时,原因是把非递增弄成非递减了,有改了好久,结果是部分正确,有一些测试有显示运行错误,然后有找bug,花的时间是真的有点多,真的想放弃了,看别人的代码吧,但是一想到自己还要考甲级,最终还是硬着头皮改吧!结果发现自己把 字符数组的初始化弄错了,才导致的运行错误,那一刻才知道基础知识有多么的重要,就在平时学习中,感觉这也太简单了,原创 2022-03-30 22:46:37 · 466 阅读 · 0 评论 -
【PAT乙级】1018锤子剪刀布
1.题目描述输入样例:10C JJ BC BB BB CC CC BJ BB CJ J输出样例:5 3 22 3 5B B2.代码演示#include<iostream>using namespace std;int main(){ int N; char s1,s2; //分别记录甲,乙的手势 cin >> N; string s="BCJ"; int a[3]={0},b[3]={0},d=0,max1=0,max2=原创 2022-03-24 18:32:50 · 308 阅读 · 0 评论 -
【PAT乙级】1016 部分A+B (15 分)
文章目录1.题目描述2.解题思路3.代码演示1.题目描述2.解题思路此题相对比较简单,这里需要我们注意的是,再从A和B中分别找出Da和Db分别出现的次数时,不需要对整形分离每一位数在进行比较,直接利用 to_string()将整形直接转化为字符串,在通过下标索引就可以找到每一位数了。3.代码演示#include<iostream>#include<math.h>#include<string.h>using namespace std;int main原创 2022-03-17 22:42:31 · 191 阅读 · 0 评论 -
【PAT乙级】1013 数素数 (20 分)
1.题目描述2.解题思路:本题和我我以前写的1007素数对猜想这道题找素数的方法相同,这里就不再解释了,大家可以点击上面的链接。这里需要注意的是:定义的数组长度一定要足够大,还有就是第10000个素数是104729,所以寻找的范围也要很大。找出的每个素数存入数组p中,然后从第M到第N按照要求的格式输出所有素数。3.完整代码#include<iostream>#include<math.h>using namespace std;int main(){ int M,原创 2022-03-05 22:55:23 · 350 阅读 · 0 评论 -
【PAT乙级】1011 A+B 和 C (15 分) C++实现
题目描述代码示例:#includeusing namespace std;int main(){int n;long long int a[3];cin >> n;bool b[n];for(int i = 0;i<n;i++){for(int j=0;j<3;j++){std::cin>>a[j];}if(a[0]+a[1]>a[2]) b[i]=1;else b[i] = 0;}for(int i=0;i<n;i++){原创 2022-03-01 22:46:02 · 279 阅读 · 0 评论 -
【PAT乙级】1007素数对猜想 C++实现
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-02-26 16:49:43 · 599 阅读 · 0 评论 -
【PAT乙级】1006 换个格式输出整数 (15 分) C++实现
题目描述:完整代码实例:#include<iostream>#include<cstring>using namespace std;int main(){ int n; cin >> n; int i = n/100; // 百位的个数 n = n % 100; int j = n/10; // 十位的个数 int k = n % 10; //个位的个数 for(int s = 0;s<i;s++){ cout << "原创 2022-02-26 17:15:43 · 292 阅读 · 0 评论 -
【PAT乙级】1012 数字分类 (20 分) C++实现
1.题目描述2.完整代码#include<iostream>#include<math.h>using namespace std;int main(){ int N; cin >> N; int s[N]; int a=0,b=0,j=0,k=0,max=0,num1=0; double q,y=0; for(int i=0;i<N;i++){ cin >> s[i]; if(s[i]%5==0&&原创 2022-03-03 15:56:51 · 535 阅读 · 0 评论