![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA乙级
微躺青年
这个作者很懒,什么都没留下…
展开
-
PTA乙级1035,插入与归并
分析:参考柳婼的代码#include<bits/stdc++.h>using namespace std;int main(){ int n,a[100],b[100],i,j; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i+...原创 2019-08-29 10:39:09 · 217 阅读 · 0 评论 -
PTA乙级1058,选择题
注意:在用scanf()而不是cin读入每一个选项时,如果用scanf()函数输入则要在%c前加上一个空格即" %c",柳婼的博客解释是:scanf中的%d和%c之间一定要有分隔符的主动scanf输入,否则可能接收成空格或者空值~我直接使用了cin,因为cin无法读入空格,反而刚好没有遇见这个问题。#include<bits/stdc++.h>using namespace st...原创 2019-07-28 18:49:55 · 198 阅读 · 0 评论 -
PTA乙级1077,互评成绩
分析:round()函数可以实现四舍五入的功能! #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; for(int i=0;i<n;i++){ ...原创 2019-08-01 21:29:43 · 141 阅读 · 0 评论 -
PTA乙级1015,德才论
分析:设置cmp()比较函数;建立二维数组vector() v[4] ,用于存储4种不同类型的人 #include<bits/stdc++.h> using namespace std; struct node{ int num,de,cai;//准考证号,德分,才分 }; int cmp(struct...原创 2019-08-08 14:12:38 · 202 阅读 · 1 评论 -
PTA乙级1002,写出这个数
分析:使用to_string() 函数可以较快解决问题#include<bits/stdc++.h>using namespace std;int main(){ string s[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; string t; int sum=0; ...原创 2019-08-06 15:06:09 · 148 阅读 · 0 评论 -
PTA乙级1003,我要通过!
分析:这题目算得上题库里较难读懂的了只能有一个P一个T,中间末尾和开头可以随便插入A。但是必须满足开头的A的个数 × 中间的A的个数 = 结尾的A的个数,而且P和T中间必须要有A #include<bits/stdc++.h> using namespace std; int main(){ int n,p=0,t=0; ...原创 2019-08-06 16:07:45 · 299 阅读 · 1 评论 -
PTA乙级1078,字符串压缩与解压
分析:标记变量flag用于判断是压缩还是解压;解压字符串时,解压的数字可能大于10,所以要不断累加; #include<bits/stdc++.h> using namespace std; int main(){ string input; char flag; cin>>fla...原创 2019-08-02 11:28:33 · 186 阅读 · 0 评论 -
PTA乙级1016,部分A+B
分析:见代码 #include<bits/stdc++.h> using namespace std; int main(){ string A,B; int Da,Db,pa=0,pb=0; cin>>A>>Da>>B>>Db; for(int i=...原创 2019-08-08 22:18:44 · 152 阅读 · 0 评论 -
PTA乙级1017,A除以B
分析:参考日沉云起的博客 #include<bits/stdc++.h> using namespace std; int main(){ string a,q=""; int b,r=0; cin>>a>>b; for(int i=0;i<a.l...原创 2019-08-08 23:11:25 · 280 阅读 · 0 评论 -
PTA乙级1057,数零壹
注意:字母a对应序号1#include<bits/stdc++.h>using namespace std; int main(){ string s; getline(cin,s); for(int i=0;i<s.length();i++){ s[i]=tolower(s[i]); //将所有大写字母转化为小写字母...原创 2019-07-28 16:47:26 · 154 阅读 · 1 评论 -
PTA乙级1014,福尔摩斯的约会
分析:题目条件比较多,要仔细读题 #include<bits/stdc++.h> using namespace std; int main(){ int i=0,j=0,u; char t[2]; string a,b,c,d; cin>>a>>b>>...原创 2019-08-08 13:02:03 · 84 阅读 · 0 评论 -
PTA乙级1065,单身狗
定义一个map<int,int>couple来存储两个人的夫妻关系 。另外定义一个set,在输入M位客人的过程中,如果该客人没有配偶,直接将ID号加入set中;如果有配偶,在set中查找是否包含其配偶的ID,如果不包含,将该客人的ID号加入set中;如果包含,在set中删除其配偶的ID 。最后set中储存的就是落单的客人,输出即可。代码如下:#include<bits/std...原创 2019-07-23 15:41:40 · 153 阅读 · 0 评论 -
PTA乙级1053,住房空置率
注意输出和细节#include<bits/stdc++.h>using namespace std;int main(){ int N,D;//住房总套数;观察期天数阈值 double e;//低电量阈值 cin>>N>>e>>D; int a=0;//可能空置的住房数 int b=0;//空置住房数...原创 2019-07-27 21:43:27 · 96 阅读 · 0 评论 -
PTA乙级1012,数字分类
分析: #include<bits/stdc++.h> using namespace std; int main(){ int n,a[6]={0},t[6]={0},t2=1;//a[i]用于存储Ai,t[i]用于存储a[i]中满足条件的个数 cin>>n; for(int i=...原创 2019-08-07 22:03:43 · 108 阅读 · 0 评论 -
PTA 乙级1054,求平均值
error:在使用sscanf()函数时,把"%lf"输成"%1f",出错。#include<bits/stdc++.h>using namespace std;int main(){ int N,num=0;//数据总数和合法数量 scanf("%d",&N); double sum=0.0;//合法输入的所有数据之和 char s[1...原创 2019-07-28 11:15:31 · 153 阅读 · 0 评论 -
PTA乙级1042,字符统计
注意:tolower()函数可以把大写字母转化为小写字母#include<bits/stdc++.h>using namespace std;int main(){ string s; getline(cin,s);//因为有空格,所以不能用cin输入 int a[26]={0};//记录26个字母出现的频率 for(int i=0;i<...原创 2019-07-28 11:38:48 · 93 阅读 · 0 评论 -
PTA乙级1075,链表元素分类
分析:将结点用li[10000]保存,li为node类型,node中保存结点的值value和它的next地址。list的下标就是结点的地址。将<0、0~k、>k三部分的结点地址分别保存在v[0]、v[1]、v[2]中,最后将vector(二维数组)中的值依次输出即可 #include<bits/stdc++.h> using namespace std; ...原创 2019-08-01 17:42:22 · 106 阅读 · 0 评论 -
PTA乙级1076,wifi密码
分析:参考一下柳婼的妙法~ n没什么作用~以字符串方式接收输入,只要遇到任何一个字符串s满足大小为3且s[2]为’T’,就将s[0]字母对应的wifi密码输出~#include <iostream>using namespace std;int main() { string s; while (cin >> s) if(s.size...原创 2019-08-01 20:58:15 · 680 阅读 · 0 评论 -
PTA乙级1013,数素数
分析:注意是输出所有素数中的第m个到第n个 #include<bits/stdc++.h> using namespace std; bool f(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return false;//不是素数...原创 2019-08-08 12:14:02 · 131 阅读 · 0 评论 -
PTA乙级1005,继续(3n+1)猜想
分析:后来做的 #include<bits/stdc++.h> using namespace std; int main(){ vector<int> v;//存储输入的数 set<int> s;//记录被覆盖的数 int k,a; cin>>k;...原创 2019-08-07 00:03:25 · 201 阅读 · 0 评论 -
PTA乙级1018,锤子剪刀布
分析: #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int jiawin=0,yiwin=0;//分别记录甲乙各自赢的次数 int jia[3]={0},yi[3]={0};//...原创 2019-08-09 11:44:04 · 144 阅读 · 0 评论 -
PTA乙级1023,组个最小数
分析:#include<bits/stdc++.h>using namespace std;int main(){ int a[10]; for(int i=0;i<10;i++){ cin>>a[i]; } for(int i=1;i<10;i++){ //找到除零以外的一个最小数作为首位输出 if(a[i]!=0){ print...原创 2019-08-10 13:50:21 · 152 阅读 · 0 评论 -
PTA乙级1024,科学计数法
分析:见代码#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; int i=0; while (s[i]!='E'){ //找到字符E的索引 i++; } string t=s.substr(1,i-1); //截取首位正负号和‘E’之间的字符串 int...原创 2019-08-10 15:29:14 · 298 阅读 · 0 评论 -
PTA乙级1025,反转链表
分析:注意是每 k 位进行反转,而不是前 k 位。#include<bits/stdc++.h>using namespace std; int main(){ int begin,n,k; cin>>begin>>n>>k; int data[100000],next[100000]; //data[i]用于存储地址为i的结点的值,n...原创 2019-08-10 17:15:06 · 209 阅读 · 0 评论 -
PTA乙级1026,程序运行时间
分析:#include<bits/stdc++.h>using namespace std;int main(){ int c1,c2,n; cin>>c1>>c2; n=(int)round((c2-c1)/100.0);//c1,c2两者作差化成秒并四舍五入 int hour=n/3600; n=n%3600; int minute = ...原创 2019-08-10 21:28:32 · 132 阅读 · 0 评论 -
PTA乙级1027,打印沙漏
分析:参考了博主日沉云起的做法,可以用示例加以分析图形字符数量和行数有数学关系,利用等差数列求和不难看出,但是先拿出总行数再来解决问题的方法要学会。#include<bits/stdc++.h>using namespace std;int main(){ int N; char c; cin>>N>>c; int mid=(int)sqr...原创 2019-08-10 23:16:10 · 196 阅读 · 0 评论 -
PTA乙级1028,人口普查
分析:#include<bits/stdc++.h>using namespace std;int main(){ int n,num=0; string name,birth,maxname,minname,maxbirth="1814/09/06",minbirth="2014/09/06"; cin>>n; for(int i=0;i<n;i+...原创 2019-08-11 11:06:22 · 129 阅读 · 0 评论 -
PTA乙级1029,旧键盘
分析:给出3种方法利用string中的好用的函数解决问题#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2,t; cin>>s1>>s2; for(int i=0;i<s1.length();i++){ if(s2.fi...原创 2019-08-11 12:35:25 · 115 阅读 · 0 评论 -
PTA乙级1030,完美数列
分析:一开始,天真的认为只要对输入的数存入数组并对其进行从小到大的排序,然后最大值 M 就取该数列中的最后一个数,然后从头遍历,直到有一个数满足 M 除以它小于等于 p 就退出循环,利用索引相减就能得到所求。提交后有几个测试点是错的,后来一想这种方法有问题,下面举个例子,如数组:1,2,3,4,5,6,7,8,10,20如果 p= 2,取M=10,那么显然从10开始才符合条件,结果为2。但是...原创 2019-08-11 14:23:31 · 198 阅读 · 0 评论 -
PTA乙级1022,D进制的A+B
分析:#include<bits/stdc++.h>using namespace std;int main(){ int a,b,c,d,x[999],k=0,i=0; cin>>a>>b>>d; c=a+b; if (c!=0){ while (c!=0){ x[i++]=c%d; c/=d; k++;...原创 2019-08-10 13:16:53 · 145 阅读 · 0 评论 -
PTA乙级1011,A+B 和 C
分析: #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; for(int i=1;i<=t;i++){ long long a,b,c; ...原创 2019-08-07 21:30:07 · 187 阅读 · 0 评论 -
PTA乙级1006,换个格式输出整数
分析:输入的整数小于1000,最多只有三位 #include<bits/stdc++.h> using namespace std; int main(){ int a,i=0,b[3]={0}; cin>>a; while(a!=0){ b[i++]=a%10; ...原创 2019-08-07 16:58:47 · 104 阅读 · 0 评论 -
PTA乙级1007,素数对猜想
分析:如果两个数是素数对,那么差值肯定是二,而且从5 开始才出现第一对。 #include<bits/stdc++.h> using namespace std; bool f(int x){//判断素数 for(int i=2;i*i<=x;i++){ if(x%i==0) ...原创 2019-08-07 17:54:56 · 157 阅读 · 0 评论 -
PTA乙级1019,数字黑洞
分析:c++中的一些函数使用得当可以提高解题效率#include<bits/stdc++.h>using namespace std;int main(){ int n,n1,n2; cin>>n; string num; do{ num=to_string(n); while (num.size()<4){//整数不够4位要补0 nu...原创 2019-08-09 22:57:46 · 169 阅读 · 0 评论 -
PTA乙级1020,月饼
分析:贪心算法,单价越高卖的越多,利润越高。#include<bits/stdc++.h>using namespace std;struct A{ double kuncun,all,price;}a[10000];bool cmp(A a , A b){ return a.price>b.price;}int main(){ int N,D; c...原创 2019-08-09 23:25:30 · 296 阅读 · 0 评论 -
PTA乙级1021,个位数统计
分析:#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; int a[10]={0}; for(int i=0;i<s.length();i++){ a[s[i]-'0']++; } for(int i=0;i<10;i++){ if(a[i...原创 2019-08-09 23:34:01 · 109 阅读 · 0 评论 -
PTA乙级1008,数组元素循环右移问题
分析: #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; int a[n];//存储输入的整数序列 for(int i=0;i<n;++i) ...原创 2019-08-07 20:15:15 · 152 阅读 · 0 评论 -
PTA乙级1009,说反话
分析:下面这种是用栈解决的,比较简单,但是我没有想到,看了柳婼的博客 #include <bits/stdc++.h> using namespace std; int main() { stack<string> v; string s; while(cin >&g...原创 2019-08-07 20:45:51 · 235 阅读 · 0 评论 -
PTA乙级1010,一元多项式求导
分析:注意题目说了以指数递降方式输入多项式非零项系数和指数;零多项式肯定是一项都没有 #include<bits/stdc++.h> using namespace std; int main() { int a,b,flag=0; while(cin>>a>>b) {...原创 2019-08-07 21:15:00 · 169 阅读 · 0 评论 -
PTA乙级1045,快速排序
方法1题目要求主元是要满足它左边所有的元素都比它自身小,右边所有元素都比它自身大。所以,对于存入的数组我们可以将其排序。很显然,如果一个数是主元,那么它在排序前后的两个数组中的索引是相同的其次,在循环遍历中判断时,它本身就是从第一个元素到它自身的最大元素。我的代码如下:#include<cstdio>#include<algorithm>using names...原创 2019-07-23 00:03:57 · 269 阅读 · 0 评论