c++
杨柳岸晓风
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++ 小数的四舍五入
c++中有这三个函数用来处理小数向整数的转换: floor()、ceil()、round()原创 2017-04-16 22:25:14 · 15543 阅读 · 4 评论 -
PAT乙级1031 查验身份证
#include <iostream>#include <string>using namespace std;int main(){ int N,sum,z,isPass[100]={0},count=0; int wei[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char code[]={'1','0','X','9','8',原创 2017-11-30 22:07:38 · 618 阅读 · 0 评论 -
PAT乙级1029 旧键盘
#include <iostream>#include <string>#include <set>using namespace std;int main(){ string str1,str2; char c; set<char> str3; cin>>str1; cin>>str2; for(int i=0,j=0;i<str1.lengt原创 2017-12-01 16:28:30 · 364 阅读 · 0 评论 -
PAT乙级1030 完美数列
这道题我只用了一次遍历,遗憾的是最后一个测试点无法通过,看到有人说最后一个测试点是大数问题,改了数据类型仍然不行,心累。 由于涉及最大最小问题,先对整个数组排序。从第一个元素开始标记,对以后的每个元素进行条件判断,当不满足题目条件,对标记+1,记录此时的数据个数,同时遍历并不需要暂停。这样遍历完成后有一个漏洞就是,如果所有数据满足第一个元素的判定条件,就没有记录数据个数,此时max=0,对这个用I原创 2017-12-01 16:06:25 · 703 阅读 · 0 评论 -
PAT乙级1028 人口普查
#include <iostream>#include <string>using namespace std;struct person{ string name; double birth;};int main(){ int N,count=0; char name[6],birth[20]; person Ivan,mi,ma; dou原创 2017-12-01 20:36:06 · 437 阅读 · 0 评论 -
PAT乙级1027 打印沙漏
1、计算需要打印的行数 2、打印上半部 3、打印下半部#include <iostream>using namespace std;int main(){ int sum[200],num[200],s1=1,s2=0,count=0; int N; char c; sum[count]=1; num[count]=1; cin>>N;原创 2017-12-01 21:43:20 · 427 阅读 · 0 评论 -
PAT乙级1053 住房空置率
#include <iostream>using namespace std;int main(int argc, char** argv) { int N,D,K,count,countKk=0,countKz=0; float num,e; int flag; cin>>N>>e>>D; for(int i=0;i<N;i++){ cin原创 2017-11-22 21:28:43 · 353 阅读 · 0 评论 -
PAT乙级 1071 小赌怡情
这道题要注意格式,比如 “Win %d! Total = %d.” 另外,如果余额为0,先输出Lose…… 紧接着输出Not enough 感叹号与T之间是两个空格。#include <iostream>using namespace std;int main(){ int T,K; int n1,b,t,n2; cin>>T>>K; for(int i=0;原创 2017-12-02 22:34:40 · 638 阅读 · 0 评论 -
PAT乙级1052 卖个萌
第二个测试点未过,有段错误#include <iostream>#include <vector>#include <string>using namespace std;int get1(string a,vector<string> &vec){ string temp=""; for(int i=0;i<a.length();i++){ if(a[i]!原创 2017-11-23 15:15:19 · 838 阅读 · 0 评论 -
PAT乙级 1072 开学寄语
这个题要注意输出格式,物品编号为整数,但输出的时候要4位,不足位前位补0;不然第三个测试点过不了#include <iostream>#include <set>#include <string>#include <vector>using namespace std;struct Node{ string name; int numSigle; vector<in原创 2017-12-03 22:00:10 · 553 阅读 · 0 评论 -
PAT乙级1049 数列的片段和
PAT上好多题都是用单精度不可以通过,双精度就没问题,以后就用双精度吧。#include <iostream>using namespace std;int main(){ int N,s; double num,sum=0; cin>>N; if(N%2==0){ s=N/2; }else{ s=N/2+1; }原创 2017-11-24 22:15:00 · 415 阅读 · 0 评论 -
PAT乙级1048 数字加密
#include <iostream>#include <string>#include <vector>using namespace std;int reverse(string s,int t[]){ for(int i=0;i<s.length();i++){ t[i]=s[s.length()-i-1]-'0'; } return 0;}i原创 2017-11-25 15:26:45 · 438 阅读 · 0 评论 -
PAT乙级1047 编程赛团体
不用在意队员编号,只需记录队号和成绩,用map结构#include <iostream>#include <string>#include <map>using namespace std;int main(){ int N,score,maxScore=0; string teamNum,team,maxTeam; map<string,int> teamScore;原创 2017-11-25 22:26:45 · 426 阅读 · 0 评论 -
PAT乙级1045 快速排序
这里用到的思想主要是对数组副本进行排序,然后与原数组进行对比,同样位置相同则表明有可能是主元,如果大于等于前面的每一个数(用等于是因为包括自身),则一定是主元#include <iostream>#include <algorithm>using namespace std;int main(){ int N,max=0,numPrimary=0; long int num[10原创 2017-11-27 10:04:23 · 622 阅读 · 0 评论 -
PAT乙级1043 输出PATest
#include <iostream>#include <string>#include <vector>using namespace std;int main(){ string str; int vP=0,vA=0,vT=0,ve=0,vs=0,vt=0; cin>>str; for(int i=0;i<str.length();i++){原创 2017-11-27 15:53:44 · 548 阅读 · 0 评论 -
PAT乙级1042 字符统计
用map结构会方便很多#include <iostream>#include <string>#include <map>using namespace std;int main(){ map<char,int> voca; char c; string str; int max=0; getline(cin,str); for(int i=0;原创 2017-11-27 16:24:29 · 374 阅读 · 0 评论 -
PAT乙级1041 考试座位号
#include <iostream>#include <string>using namespace std;struct Node{ string num; int tryNum; int testNum;};int main(){ int N,M,search[1000]; Node stu[1000]; cin>>N; for(原创 2017-11-27 16:43:30 · 411 阅读 · 0 评论 -
PAT乙级1032 挖掘机技术哪家强
#include <iostream>#include <map>using namespace std;int main(){ map<int,int> node; int N,num,score,maxn=0,maxs=0; cin>>N; for(int i=0;i<N;i++){ cin>>num>>score; if(no原创 2017-11-30 21:16:40 · 714 阅读 · 0 评论 -
PAT乙级1033 旧键盘打字
#include <iostream>#include <string>#include <set> using namespace std;int main(){ string str1,str2,str3; int flag[100000]={0},count=0; getline(cin,str1); getline(cin,str2); set<原创 2017-11-30 21:04:10 · 438 阅读 · 0 评论 -
PAT乙级1055 集体照
注意: 1、排序问题,先按照身高降序,后按名字升序 2、左右排列问题,偶数应该是:4、2、1、3;奇数应该为:4、2、1、3、5#include <iostream>#include <algorithm>#include <vector>#include <string>using namespace std;struct person{ string name; i原创 2017-11-21 17:27:20 · 527 阅读 · 0 评论 -
C++ map的基本操作
1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次转载 2017-05-13 14:35:18 · 592 阅读 · 0 评论 -
C++标准模板库<algorithm>下的函数sort
STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。sort()定义在在头文件中。sort函数是标准模板库的函数,已知开始和结束的地址即可进行排序,可以用于比较任何容器(必须满足随机迭代器),任何元素,任何条件,执行速度一般比qsort要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。具体事例如下:char ch[20]="sdasdac转载 2017-05-13 15:03:39 · 754 阅读 · 0 评论 -
C++ vector容器类型
1.vector的简单介绍vector作为STL提供的标准容器之一,是经常要使用的,有很重要的地位,并且使用起来也是灰常方便。vector又被称为向量,vector可以形象的描述为长度可以动态改变的数组,功能和数组较为相似。实际上更专业的描述为:vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对转载 2017-05-13 14:57:01 · 571 阅读 · 0 评论 -
C++中list用法详解
1.关于list容器list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指针域。前驱元素指针域保存了前驱元素的首地转载 2017-05-13 15:37:51 · 1386 阅读 · 0 评论 -
PAT乙级1065
我在这里为了查询方便用到了map, 看到其他同学有用数组来映射一个人有没有对象的,更快捷#include <iostream>#include <map>#include <set>#include <algorithm>原创 2017-11-18 16:31:19 · 348 阅读 · 0 评论 -
PAT乙级1063
#include <iostream>#include <math.h>using namespace std;int main(){ int N,a,b; float rad,max=0; cin>>N; for(int i=0;i<N;i++){ cin>>a>>b; rad=sqrt(a*a+b*b); if(原创 2017-11-18 17:02:05 · 303 阅读 · 0 评论 -
PAT乙级1061
#include <iostream>using namespace std;int main(int argc, char** argv) { int N,M,Score[100]={0}; int fullScore[101],answer[101],stuAnswer[101]; cin>>N>>M; for(int i=0;i<M;i++){原创 2017-11-19 20:39:05 · 345 阅读 · 0 评论 -
PAT乙级1060 爱丁顿数
这里注意 “爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E。不包括等于。#include <iostream>#include <algorithm>#include <vector>using namespace std;bool cmp(int a,int b){ return a>b;} int main(){ int N,num,E=0,max=0;原创 2017-11-20 10:44:01 · 437 阅读 · 0 评论 -
PAT乙级1039 到底买不买
这里用了map计数查找; 想到一种办法先对输入进行排序计数,这样后边遍历查找的时候就只需要一遍。#include <iostream>#include <string>#include <map>using namespace std;int main(){ int count_b=0; string give,want; map<char,int> give_map原创 2017-11-29 10:00:29 · 361 阅读 · 0 评论 -
PAT乙级1038 统计同成绩学生
#include <iostream>#include <map>#include <vector>using namespace std;int main(){ int N,K,num; vector<int> find; map<int,int> stu_score; cin>>N; for(int i=0;i<N;i++){ cin原创 2017-11-29 10:10:58 · 399 阅读 · 0 评论 -
PAT乙级1037 在霍格沃茨找零钱
#include <iostream>#include <math.h>using namespace std;int main(){ int Galleon1,Sickle1,Knut1,Galleon2,Sickle2,Knut2,Galleon3,Sickle3,Knut3; int P=0,A=0,ans; scanf("%d.%d.%d",&Galleon1,原创 2017-11-29 10:36:48 · 408 阅读 · 0 评论 -
PAT乙级1036 跟奥巴马一起学编程
#include <iostream>using namespace std;int main(){ float N; int m; char c; cin>>N; cin>>c; m=(N/2+0.5); for(int i=0;i<m;i++){ for(int j=0;j<N;j++){ if(i=原创 2017-11-29 10:55:06 · 423 阅读 · 0 评论 -
PAT乙级 C语言竞赛
#include <iostream>#include <vector>#include <math.h>#include <set>using namespace std;bool primeNumber(int a){ int i,k; k=(int)sqrt(a); for(i=2;i<=k;i++){ if(a%i==0){原创 2017-11-20 11:34:45 · 533 阅读 · 0 评论 -
PAT乙级1058 选择题
1、似乎PAT所有的题都可以单次输出(一边输入一边输出)或者整体输出(全部输入完成后输出)。一般来说单次输出所需要的数据结构简单一些,但整体输出会让自己的程序看起来简单明晰,各有优点。本题用单次输出。 2、这道题独特的一个点救赎输入里面有“(”括弧这一个字符型数据,看到http://blog.youkuaiyun.com/liuchuo/article/details/52510582 柳婼的答案里将字符和回原创 2017-11-21 09:51:57 · 617 阅读 · 0 评论 -
PAT乙级1057 数零壹
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ string str; vector<int> sequenceNum; int dSum=0,num,num0=0,num1=0; getline(cin,str); for(int原创 2017-11-21 11:00:59 · 484 阅读 · 0 评论 -
PAT乙级1056 组合数的和
从所给数里面组合两位数,可以看作每一个数乘10顺序加其他的数。 如果有N个数,对某个数num来说,自身需要(N-1)次乘10与其他数相加。 因为其他还有(N-1)个数,因此其自身num做为个位数需要被加(N-1)次。 综上,每一个数做为(num*10+num)被累加(N-1)次。#include <iostream>using namespace std;int main(){ i原创 2017-11-21 11:20:04 · 408 阅读 · 0 评论 -
PAT乙级1040 有几个PAT
这里数组较大,尽量减少遍历次数。 本题以A为核心,对“A前所有的P”和“A后所有的T”进行统计然后相乘,得到此A所能构成的PAT数,最后对所有A能构成的PAT数相加得到答案。#include <iostream>#include <string>using namespace std;int main(){ string str; int nump[100000]={0},nu原创 2017-11-27 17:30:36 · 418 阅读 · 0 评论
分享