c++学习 浙大PAT
struggler_1990
目前从事影视成像行业,熟悉相机相关业务。
展开
-
浙大PAT (Advanced Level) Practise 1006
//本题是一道比较简单的排序题,建立一个结构体并用容器vector存储每条记录,以algorithm排序,获取开门人和关门人id。//代码如下:#include #include #include #include using namespace std;struct Person //定义一个记录的数据结构{ string id; str原创 2013-06-09 21:45:07 · 586 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1012 The Best Rank (25)
#include //参考了人家的解法#include #include #include using namespace std;struct Stu{ int id; int C; int M; int E; int A;};bool sortByC(Stu a,Stu b){ return a.C>b.C;}翻译 2013-10-07 15:30:54 · 599 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1020 Tree Traversals (25)
#include #include #include using namespace std;struct Node{//树节点int data;Node *left,*right;Node():data(0), left(nullptr), right(nullptr){};};Node *createTree(int n, int postOrder[], int inOrder[])//递归原创 2014-11-06 22:06:17 · 530 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1004. Counting Leaves (30)
#include #include #include #include using namespace std;/*采用深度搜索方法,获取每一层的叶子节点,用map存储数据,省去了建立树的麻烦,此方法更为简便*/void dfs(map > &tree, map &res, int id, int level){ if(tree.count(id) == 0){//如果没有子节原创 2014-11-06 21:06:38 · 561 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1043 Is It a Binary Search Tree (25)
#include #include using namespace std;/*根据题意,二叉查找数的左子树节点的所有数值都小于根节点,右子树数值都大于或等于根节点数值。又输入的一行数字为二叉查找树的先序遍历,因此,对于某一数组num,设其后续遍历为postOrder,可以采用如下步骤可递归确定该树是否为二叉查找树(同时获取其后续遍历):1.输入数组的第一个数是根节点(先序遍历的性质原创 2014-11-07 23:18:51 · 534 阅读 · 0 评论 -
PAT (Advanced Level) Practise 1011 World Cup Betting (20)
#include#include#includeusing namespace std;int main(){ double num[3][3]; int i,j; for(i=0;i<3;++i) { for(j=0;j<3;++j) cin>>num[i][j]; } int flag; double max,result=1; for(i=0;i<3;++原创 2013-07-19 13:26:17 · 536 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1009 Product of Polynomials (25)
/*本题与1002类似,只是将简单的两个数组相加,改为两个数组相乘,采用双循环可解,代码如下*/#include using namespace std;int main(){ int K; while(cin>>K) { double a[1001]={0},b[1001]={0},c[2001]={0}; //a[],b[]数组储存两个系数数组,c[]储存结果 i原创 2013-06-15 22:36:40 · 681 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1004. Counting Leaves (30)
/*建立树的链表,用递归的方式数每一层的叶节点数*/#include #include using namespace std;int count[100]={0};int maxlevel=1;struct childLink //定义孩子链表{ int no; childLink *next; childLink (){next=0;}};原创 2013-06-14 14:06:31 · 828 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1002. A+B for Polynomials (25)
/*这题相当于求多项式前面的系数和,用数组存储数组,对应项相加,即可得到结果*/#include #include using namespace std;int main(){ int k; while(cin>>k) { int n,c=0; double an; double suzu[1005]; memset(suzu,0,sizeof(suzu)); whil原创 2013-06-14 13:54:38 · 803 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1008 Elevator (20)
/*本题是道水题,直接考察前后两个数字的关系解题,代码如下:*/#include using namespace std;int main(){ int n; while(cin>>n) { int num[10000]={0}; int t=0; for(int i=1;i<=n;++i) { cin>>num[i]; if(num[i]>num[i-原创 2013-06-14 13:45:19 · 688 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1001 A+B Format (20)
/*本题是普通A+B,只是结果输出是特殊的格式*/#include using namespace std;int main(){ int a,b,c; while(cin>>a>>b) { c=a+b; if(c<0) { c=-c; printf("-"); } if(c>=1000000) //这里对不同范围内的和原创 2013-06-14 13:49:38 · 662 阅读 · 0 评论 -
PAT (Advanced Level) Practise 1005
本题比较简单,利用数组储存大整数,每位数字求和后,再利用sprintf函数将数字返回为字符串,然后输出。代码如下:#include #include using namespace std;int main(){ string s; string numE[10]={"zero","one","two","three","four","five","six","seven",原创 2013-06-09 21:15:47 · 555 阅读 · 0 评论 -
浙大PAT (Advanced Level) Practise 1007
/*此题求最大连续子序列,可以用动态规划的方法,用变量先记录遍历到数组的最大和及i和j,一直遍历,并与当前最大子序列和比较。如果大于当前最大子序列和,则置换之,否则,重新开始,直至遍历完数组。*/#include using namespace std;int main(){ int K; while(cin>>K) { int jilu=-1,sum=0,first=0,l原创 2013-06-13 22:34:53 · 615 阅读 · 0 评论