PAT 乙级题库
呆2222222
东北大学秦皇岛分校非计算机专业在读
展开
-
1068 万绿丛中一点红 (20分) 求助!!
写这题写了有两个小时了,还是所有测试点段错误,哪里有问题啊,希望哪位大佬看到了给我指点指点,感激不尽!!#include<stdio.h>int yanse[1010][1010];int main(){ int M, N, TOL; scanf("%d %d %d", &M, &N, &TOL); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { scanf("原创 2020-07-25 15:56:03 · 126 阅读 · 0 评论 -
PAT 乙级 1028 人口普查 (20分)
PAT 乙级 1028 人口普查 (20分)原题链接测试点3段错误检查了好久,要考虑输入都不合法的情况#include<stdio.h>struct node { char name[10]; int yy, mon, day; int he;}shuruname[100010];int main(){ int n, min, max, minhe = 20140906, maxhe = 18140906, count = 0; scanf("%d", &n);原创 2020-07-23 10:43:35 · 149 阅读 · 0 评论 -
PAT 乙级 1015 德才论 (25分)
PAT 乙级 1015 德才论 (25分)原题链接之前刷题的时候就碰见过这题,当时觉得好难,完全没思路,那会儿看了看算法笔记上4.1节排序的内容,用的C++里的sqrt()函数,半个小时就AC了,而且自认为代码写的质量还可以,我可太开心了2333。。不说了,继续刷算法笔记去了我的代码:#include<stdio.h>#include<algorithm>using namespace std;struct node{ int id, de, cai, dengji原创 2020-07-21 18:09:36 · 101 阅读 · 0 评论 -
PAT乙级 1007 素数对猜想 (20分)
PAT乙级 1007 素数对猜想 (20分) (超时解决)原题链接这道题思路比较简单,但是在判断素数是,循环范围为2~i-1的话,第五个测试点会超时,换成 2-sqrt(i)就可以了。可以写成j*j>=i我的代码:#include<stdio.h>#include<string.h>int main(){ int n, count=0, sushu[100000] = { 0 }; scanf("%d", &n); for (int i = 2;原创 2020-07-21 11:49:07 · 102 阅读 · 0 评论 -
PAT 乙级 1061 判断题 (15分)
PAT 乙级 1061 判断题 (15分)原题链接送分题我的代码:# include<stdio.h>int main(){ int n, m, manfen[150], zhengquedaan[150], xueshengzuoda[150]; scanf("%d %d", &n, &m); for (int i = 0; i < m; i++) { scanf("%d", &manfen[i]); } for (int i = 0;原创 2020-07-20 22:23:00 · 131 阅读 · 0 评论 -
PAT 乙级 1066 图像过滤 (15分)
PAT 乙级 1066 图像过滤 (15分)原题链接题目挺简单,就是在最后输出格式上费了好长时间才通过我的代码:#include <stdio.h>int main(){ int m, n, a, b, k; int i, j, tmp; scanf("%d %d %d %d %d", &m, &n, &a, &b, &k); for (i = 0; i < m; i++) { for (j原创 2020-07-20 22:06:40 · 99 阅读 · 0 评论 -
PAT乙级 1071 小赌怡情 (15分)
PAT乙级 1071 小赌怡情原题链接送分题源码:#include<stdio.h>int main(){ int T, K, n1, b, t, n2; scanf("%d %d", &T, &K); for (int i = 0; i < K; i++) { scanf("%d %d %d %d", &n1, &b, &t, &n2); if (t > T) { printf("Not enough原创 2020-07-20 21:26:43 · 129 阅读 · 1 评论 -
PAT 乙级 1056 组合数的和 (15分)
PAT 乙级 1056 组合数的和 (15分)原题链接送分题源码:#include<stdio.h>int main(){ int n, a[10] = { 0 }, he = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j <原创 2020-07-20 20:43:48 · 81 阅读 · 0 评论 -
PAT 乙级 1076 Wifi密码 (15分)
PAT 乙级 1076 Wifi密码 (15分)原题链接送分题源码:#include<stdio.h>int main(){ int n, count[105]; char str[30]; scanf("%d", &n); getchar(); for (int i = 0; i < n; i++) { gets(str); for (int j = 2; j <= 14; j = j + 4) { if (str[j] == 'T')原创 2020-07-20 19:18:26 · 118 阅读 · 0 评论 -
PAT 乙级 1081 检查密码 (15分) C语言 测试点2
PAT 乙级 1081 检查密码 (15分) C语言原题链接思路:主要要考虑 测试点2 密码中空格的输入,由于scanf()函数以空格、回车、Tab键作为输入字符串的分隔符和结束符,所以在一个字符串中有空格时不能用scanf(),要用gets()读入整行。在scanf(“%d",&n);后要紧跟一个getchar()用来接收n之后的换行符,否则换行符会被读进gets()中。源码:#include<stdio.h>#include<string.h>int原创 2020-07-20 16:27:36 · 638 阅读 · 1 评论 -
PAT 乙级 1083 是否存在相等的差 (20分)
PAT 乙级 1083 是否存在相等的差题目输入样例:83 5 8 6 2 1 4 7输出样例:5 23 32 2原题链接源码:#include<stdio.h>int main(){ int shuzu[10010] = { 0 }, n, a, b; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a); if (a > i)b = a - i;原创 2020-07-20 13:34:07 · 96 阅读 · 0 评论 -
PAT 乙级 1040 有几个PAT (25分)
PAT 乙级 1040 有几个PAT题目输入样例:APPAPT输出样例:2原题链接题外话借鉴的CSDN某大佬的代码,真的感觉这个方法超级棒,我自己刚开始一上来先搞了好几层循环,测试点一个一个的都运行超时,后来又换了种思路,想用类似于在线处理的方法,结果写了几十行代码越写越乱,关键是测试点还都运行错误。。。枯了~~这个代码先把‘T’的个数算出来,在进行for循环,遇到T,就相应的减一,代码超简洁而且复杂度为O(n),太厉害了!!源码:#include<stdio.h>原创 2020-07-19 23:08:13 · 90 阅读 · 0 评论 -
PAT 乙级 1017 A除以B(20分)
PAT 乙级 1017 A除以B题目输入样例:123456789050987654321 7输出样例:17636684150141093474 3原题链接思路:按照手动除法的步骤一步一步往下进行,注意要考虑到被除数只有一位数的情况,此处有一个测试点。源码:#include<stdio.h>#include<string.h>int main(){ char a[1010]; int b, q, r; scanf("%s %d", a, &原创 2020-07-19 21:32:25 · 125 阅读 · 0 评论 -
PAT 乙级 1024 科学计数法 (20分)
PAT 乙级 1024 科学计数法题目输入样例1:+1.23400E-03输出样例1:0.00123400输入样例2:-1.2E+10输出样例2:-12000000000原题链接思路:先找到‘E’的位置,然后剩下的数、0、小数点分情况一点一点输出就可以了。第一眼看这题感觉好难的样子,看了好半天才下手去做,不过做起来一点一点分情况就好了。源码:#include<stdio.h>#include<string.h>int main(){ c原创 2020-07-19 20:14:22 · 115 阅读 · 0 评论 -
PAT 乙级 1063 计算谱半径 (20分)
PAT 乙级 1063 计算谱半径题目输入样例:50 12 0-1 03 30 -3输出样例:4.24原题链接源码:#include<stdio.h>int main(){ int n,a,b; double max=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d %d",&a, &b); if(sqrt(a*a+原创 2020-07-19 13:19:55 · 139 阅读 · 0 评论 -
PAT 乙级 1064 朋友数
PAT 乙级 1064 朋友数题目输入样例:8123 899 51 998 27 33 36 12输出样例:43 6 9 26原题链接思路:因为数最大只有4位,4位的和最大为36,所以建一个长度大于36的数组用来存各个朋友证号的个数,输入完后,把数组中对应个数不为0的数组下标按要求输出即可。注意:值得注意的是,这题的题目有点儿坑,我看了半天也没弄明白输出样例里面那个3是怎么来的,最后迫不得已查了一下,原来朋友证号每个数都有,跟是否有朋友数没关系~~源码:#include&l原创 2020-07-19 11:04:26 · 112 阅读 · 0 评论 -
PAT 乙级 1087 有多少不同的值 (20分)
PAT 乙级 1087 有多少不同的值 (20分)题目输入样例:2017输出样例:1480注意点:无。源码:#include<stdio.h>int main(){ int n, shuzu[30000] = { 0 }, a,count=0; scanf("%d", &n); for (int i = 1; i <= n; i++) { a = i / 2 + i / 3 + i / 5; if (shuzu[a] == 0) {原创 2020-07-19 10:03:24 · 96 阅读 · 0 评论 -
PAT 乙级 1039 到底买不买 (20分)
PAT 乙级 1039 到底买不买题目输入样例1:ppRYYGrrYBR2258YrR8RrY输出样例1:Yes 8输入样例2:ppRYYGrrYB225YrR8RrY输出样例2:No 2原题链接注意点:两个数组要的长度要大于1000;否则第二个测试点会出现运行时错误的情况。源码:#include<stdio.h>#include<string.h>int main(){ char str1[1001], str2[1001]; i原创 2020-07-19 07:43:23 · 148 阅读 · 0 评论 -
PAT 乙级 1038 统计同成绩学生
PAT 乙级 1038 统计同成绩学生题目输入样例:1060 75 90 55 75 99 82 90 75 503 75 90 88输出样例:3 2 0原题链接分析:创建一个分数为下标的数组就OK啦源码:#include<stdio.h>int main(){ int n1,n2, fenshu, shuzu[101] = { 0 }; scanf("%d", &n1); getchar(); for (int i = 0; i < n1原创 2020-07-19 00:17:48 · 106 阅读 · 0 评论 -
PAT 乙级1082 射击比赛
PAT 乙级1082 射击比赛题目输入样例:30001 5 71020 -1 30233 0 -1输出样例:0233 0001原题链接分析:就是简单的找最大最小值,输出相应ID源码:#include<stdio.h>int main(){ int n,id,x,y,max=0,min=10000,a,b; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d %d", &原创 2020-07-19 00:02:02 · 193 阅读 · 0 评论 -
PAT 乙级 1023 组个最小数
PAT 乙级 1023 组个最小数题目输入样例:2 2 0 0 0 3 0 0 1 0输出样例:10015558原题链接分析:找到除零之外的最小数,优先将其输出一位,再将剩下的数按升序依次输出即可。源码:#include<stdio.h>int main(){ int shuzu[10] = { 0 },n; for (int i = 0; i < 10; i++) { scanf("%d", &shuzu[i]); } for (int原创 2020-07-18 23:39:56 · 96 阅读 · 0 评论 -
PAT 乙级1013 数素数
PAT 乙级1013 数素数题目输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103分析:。。改了好长时间,第4个测试点还是过不了,有的博友说是数组开的太小了,要开到105000就可以了,但我的数组改了就运行超时了,这是为啥啊????,有同学看到能帮我指正一下吗提交结果:源码:#include<stdio.h>int main(){ int min原创 2020-07-18 23:16:38 · 139 阅读 · 0 评论 -
PAT 乙级 1086 就不告诉你
PAT 乙级 1086 就不告诉你题目输入样例:5 7输出样例:53原题链接分析:本题比较简单,唯一需要注意的就是当乘积最后位是零,在输出时第一位不能为0,要把0省略掉。源码:#include<stdio.h>int main(){ int a, b, d,i=0; //i用来处理乘积最后位为0的情况 long long c; scanf("%d %d", &a, &b); c = a * b; while (c != 0) { d原创 2020-07-18 22:13:49 · 114 阅读 · 0 评论 -
PAT 乙级 1014 福尔摩斯的约会
PAT 乙级 1014 福尔摩斯的约会题目输入样例:3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm输出样例:THU 14:04原题链接分析:主要是这道题的题目不太好理解,就着题目说的在结合样例猜出来星期是第一对字符串的第一对相同的字母,且范围为A-G,小时为第一对字符串中接着星期之后的第一对相同字母,范围为0-9 A-N,分钟为第二对字符串中第一对相同字符出现的位置。注意:星期的缩写不要拼错,不确定原创 2020-07-18 21:59:19 · 851 阅读 · 0 评论 -
PAT 乙级 1059 C语言竞赛
PAT 乙级 1059 C语言竞赛题目输入样例:61111666688881234555500016888800011111222288882222输出样例:8888: Minion0001: Chocolate1111: Mystery Award2222: Are you kidding?8888: Checked2222: Are you kidding?原题链接注意:需要判断素数,我刚开始做的时候以为素数就是奇数,然后按奇数做的4个测试点有3原创 2020-07-18 21:25:01 · 213 阅读 · 0 评论 -
PAT 乙级 1018 锤子剪刀布
PAT 乙级 1018 锤子剪刀布输入样例:10C JJ BC BB BB CC CC BJ BB CJ J输出样例:5 3 22 3 5B B原题链接思路:甲乙各用一个长度为6的数组来存储胜平负的次数以及出布赢、出锤赢、出剪赢的次数。需要注意的是本题在输入时会有换行符,而scanf()函数可以读入换行符,不会自动忽略每行的换行,所以要在scanf()函数后紧跟一个getchar(),否则会出错。源码:#include<stdio.h>int m原创 2020-07-18 18:59:49 · 115 阅读 · 0 评论 -
PAT 乙级 1043 输出PATest
PAT 乙级 1043 输出PATest输入样例:redlesPayBestPATTopTeePHPereatitAPPT输出样例:PATestPATestPTetPTePePee原题链接分析:这题比较简单,用一个长度为6的数组分别记录字符串中各个字母出现的次数。count中元素不全为0的时候就遍历一遍,那个数不为0,输出一个相应的字符,同时该数减1.源码:#include<stdio.h>#include<string.h>int main(){ c原创 2020-07-18 11:16:37 · 803 阅读 · 0 评论 -
PAT 乙级 1019 数字黑洞
PAT 乙级 1019 数字黑洞题目输入样例1:6767输出样例1:7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 - 2358 = 6174输入样例2:2222输出样例2:2222 - 2222 = 0000原题链接 注意:要考虑到输入为6174的情况,我刚开始最外层大循环用的while循环,在输入6174的时候没有输出,一直有一个测试点错,改成 do-while 循环之后就可以啦源码:#in原创 2020-07-18 09:59:52 · 133 阅读 · 0 评论 -
PAT 乙级 1057 数零壹
PAT 乙级 1057 数零壹题目输入样例:PAT (Basic)输出样例:3 4**分析:**先将读入的字符串逐个进行字符处理,得到和n,再将n转换为二进制,数出其中0 1 的个数。源码:#include<stdio.h>#include<string.h>int main()char shuzu[100200];gets(shuzu);//??int n = 0; //原创 2020-07-17 23:18:50 · 170 阅读 · 0 评论