PAT乙级练习集
czlm爱你的笑
努力
展开
-
1015. 德才论 (25)
题目链接:https://www.patest.cn/contests/pat-b-practise/1015思路:建立四个双向链表,分别储存四个类别的1德才兼备,2德胜才,3才德兼亡”但尚有“德胜才”者,4.剩下的在读入数据时就进行判断,满足输出要求,则个数加一,再判断属于哪一类,然后分别插入到链表中,按照输出要求。因为在链表中进行插入操作比数组要方便,所以选择了双向链表,但是最后还原创 2018-01-22 23:33:55 · 148 阅读 · 0 评论 -
1084. 外观数列 (20)
题目链接:1084. 外观数列 (20)题意:d, d1, d111, d113, d11231, d112213111, ...后面那个是对前面那个数的介绍。即统计相连且相同字符出现的次数,给定d和N,输出这个数列的第N个字符串。思路:初始化字符串str为'd',递推得到第N个字符串。逐个判断字符串中相连且相同的字符的个数,然后将字符'd'和个数加入新建字符串jg中,直到所有字符遍历完,更新字符...原创 2018-03-19 15:39:04 · 366 阅读 · 0 评论 -
1083. 是否存在相等的差 (20)
题意:N张正面数值1—N的卡片,洗牌后,背面也写上1—N,计算正面背面的差值,输出相同差值的张数。思路:将差值直接作为数组的下标,直接读入数据计算差值作为下标,该元素值加一,最后从最大下标9999到0输出值大于一的元素。#include<stdio.h>int main(){ int N,i; int a[10000],b[10000]={0}; scanf("%d",&am...原创 2018-03-19 14:46:11 · 630 阅读 · 0 评论 -
1082. 射击比赛 (20)
题意:给定几个射击比赛的坐标,判断谁是冠军,谁是菜鸟。思路:直接将选手id作为下标,通过输入x,y计算他距靶心的距离,最后直接遍历数组找到最大值和最小值。输出下标。注意点:最大值的是菜鸟,#include<stdio.h>int main(){ int N,i; int a[10000]={0},b[10000]; scanf("%d",&N); for(i=0;i...原创 2018-03-19 14:37:57 · 243 阅读 · 0 评论 -
1081. 检查密码 (15)
1081. 检查密码 (15)题意:判断给定的字符串是否合法(由数字、字母、小数点构成,且必须有字母和数字),根据要求输出反馈条件。思路:读入字符串,首先判断个数,逐个判断每个字符,统计数字、字母字符的个数,按照要求输出就行。但是题目有一个地方没说清楚,如果全部是小数点,该怎么处理?参考最美遇见你的博客,全是小数点则按缺少数字处理。注意点:读入的时候,有可能输入为空,所以读入应用gets,不然第二...原创 2018-03-19 11:28:24 · 655 阅读 · 0 评论 -
1035. 插入与归并(25)
题意:给定一个数组A,然后再给一个数组B,B是A通过插入排序或者归并排序操作的中间结果。判断进行的是何种操作,并输出该操作的下一次迭代结果。思路:因为归并排序的时间复杂度为O(n*log n);而插入排序的复杂度为O(n*n);(1)所以首先对原数组进行插入排序操作。(2)得到的结果与给定数组B进行判断,不相等,执行(1),直到相等或排序完成。(3)若排序完成,则应该是插入操作,则对B进行插入操作...原创 2018-03-15 18:22:51 · 156 阅读 · 0 评论 -
1076. Wifi密码 (15)
题意:根据要求规则将答案转化为WiFi密码。思路:读入数据,按要求输出密码就行。#include<stdio.h>int main(){ int N; char str[100][4][2]; scanf("%d%*C",&N); //输入格式控制,%*c表示跳过一个字符读取下一个字符,scanf读取单个字符时会读入空格,换行等 for(i...原创 2018-03-15 01:18:22 · 138 阅读 · 0 评论 -
1077. 互评成绩计算 (20)
题意:K个组相互评分。一个组的分数为老师给分G1和其他K-1个小组给的分数的平均分G2(去掉最高和最低分后求平均)求和除以2,也即G=(G2+G1)/2,输出每组的分数就行。思路:先求小组评分中的最大最小值,然后求平均,再和老师求平均既得该组分数。代码:#include<stdio.h>int main(){ int i,j,n,m,sc[100]={0}; float g1[...原创 2018-03-15 01:10:40 · 192 阅读 · 0 评论 -
1078. 字符串压缩与解压 (20)
题意:压缩:将AAAAA变为5A;解压:将5A变为AAAAA。思路:(1)首先判断是进行压缩还是解压。然后读入字符串。(2)压缩:遇到M个相同的字符c,输出Mc。解压:遇到数字K和相连的c,输出k个c。注意点:(1)解压时数字K可能是几位数。如100,代码:两个函数,分别处理压缩和解压问题。#include<stdio.h>void cc(char str[]){ int i;...原创 2018-03-15 01:00:23 · 147 阅读 · 0 评论 -
1079. 延迟的回文数 (20)
题意:一个数A是对称的,则称为回文数,如果一个数不是回文数,通过有限次加法可以得出一个回文数,加法原则为将原数A与它的逆转数B相加的值赋予原数A=A+B,如:1234(原数)+4321(逆转数)=5555,并输出每次加法的式子,直到原数为回文数为止,然后输出“A is a palindromic number.”;如果10次加法后,仍不是回文数,输出“Not found in 10 iterati...原创 2018-03-15 00:36:54 · 153 阅读 · 0 评论 -
1080. MOOC期终成绩 (25)
思路:创建一个结构体数组,储存学生的所有信息;每次输入成绩时,首先查找该学生,然后判断该学生是否可能获得证书;再进行排序,然后输出。有两个测试点未通过,超时了,主要是因为查找学生是比较耗时,O(n*n)。分数为16。#include<stdio.h> //16#include<string.h>#include<stdlib.h>struct stud...原创 2018-03-15 00:22:46 · 277 阅读 · 0 评论 -
PAT (Basic Level) Practise (中文)1001——1034C语言实现
题目链接:https://www.patest.cn/contests/pat-b-practise最近想学CS,看看自己是否适合编程,所以就来pat上做做编程题,都是用c语言编写的,有些思路不是特别好,仅供参考,会逐渐更新。废话不多说了,开始吧!!!1001.害死人不偿命的(3n+1)猜想 (15)题意:一个正整数n,按照卡拉兹(Callatz)猜想:偶n=n/2;奇n=(3n+1)/2的规律进...原创 2018-01-24 00:31:21 · 509 阅读 · 0 评论 -
1085. PAT单位排行 (25)
题意:统计一个学校多名考生的成绩,得到这个学校的总成绩,进行排名,思路:设立一个数据结构,用来存储学校,总分,排名,考生人数。读入每个学生的成绩,查找他的学校,然后该学校的总分加上他的分数,人数加一,学生读入完后,再进行排序,然后再计算学校的排名。最后输出。注意点:总分相同,排名相同,学校名称不区分大小写。代码:有两个测试点超时了。20分#include<stdio.h>#inclu...原创 2018-03-19 16:18:55 · 653 阅读 · 5 评论