![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT真题练习
Vansnc
这个作者很懒,什么都没留下…
展开
-
个位数统计
题目描述给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。 输入描述:每个输入包含1个测试用例,即一个不超过1000位的正整数N。 输出描述:...原创 2018-08-03 19:17:50 · 404 阅读 · 0 评论 -
旧键盘
题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入描述:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。 输出描...原创 2018-08-06 18:16:37 · 270 阅读 · 0 评论 -
德才论
这个题我首先用的是二维数组,然后冒泡排序,结果时间复杂度过高,运行超时。接着我参考了@飞翔的荷兰人灬的做法,用到了stl的内容,于是参考了@Jasen_Fu的博客,了解了一下stl的基本运用方法。容器与迭代器的基础用法可参考://1.定义和初始化 vector<int> vec1; //默认初始化,vec1为空 vector<int> v...原创 2018-08-02 14:35:12 · 298 阅读 · 0 评论 -
1016. 部分A+B
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA + PB。 #include<iostream>#include<cstring>using namespace std;int m...原创 2018-08-02 17:29:17 · 150 阅读 · 0 评论 -
A除以B
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。#include<iostream>#include<cstring>using namespace std;int main(void){ char a[1001]; int b; int c=0;...原创 2018-08-02 17:30:27 · 302 阅读 · 0 评论 -
查验身份证
题目描述一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 ...原创 2018-08-07 17:46:40 · 229 阅读 · 0 评论 -
挖掘机技术哪家强
题目描述为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入描述:输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。 输出描述:在一行中给出总得分最高的学校的编号、...原创 2018-08-07 17:47:55 · 779 阅读 · 0 评论 -
旧键盘打字
题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入描述:输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过10^5个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“...原创 2018-08-07 17:49:11 · 254 阅读 · 0 评论 -
锤子剪刀布
题目描述大家应该都会玩“锤子剪刀布”的游戏:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入描述:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。...原创 2018-08-03 14:21:37 · 207 阅读 · 0 评论 -
1019. 数字黑洞
题目描述给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。 例如,我们从6767开始,将得到 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 -...原创 2018-08-03 14:22:42 · 144 阅读 · 0 评论 -
月饼
题目描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是...原创 2018-08-03 15:41:59 · 151 阅读 · 0 评论 -
插入与归并
题目描述根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原始序列和由某排序算法产生...原创 2018-08-08 16:26:34 · 368 阅读 · 0 评论 -
人口普查
题目描述某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入描述:输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名...原创 2018-08-06 17:58:59 · 373 阅读 · 0 评论 -
打印沙漏
题目描述本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递 增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可...原创 2018-08-06 17:56:34 · 4952 阅读 · 0 评论 -
D进制的A+B
题目描述输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。 输入描述:输入在一行中依次给出3个整数A、B和D。 输出描述:输出A+B的D进制数。 输入例子:123 456 8 输出例子:1103#include<iostream>#include&...原创 2018-08-03 19:18:39 · 281 阅读 · 0 评论 -
组个最小数
题目描述给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。 输入描述:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、...原创 2018-08-03 19:20:04 · 251 阅读 · 0 评论 -
科学计数法
题目描述科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。 输入描述:每个输入包含1个测试用...原创 2018-08-03 19:21:08 · 633 阅读 · 0 评论 -
反转链表
题目描述给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。 输入描述:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(<= 105)、以及正整数K(<=N)...原创 2018-08-04 15:09:44 · 226 阅读 · 1 评论 -
完美数列
题目描述给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入描述:输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数不超...原创 2018-08-04 17:13:09 · 331 阅读 · 0 评论 -
Consecutive Factors
题目描述Among all the factors of a positive integer N, there may exist several consecutive numbers. For example, 630 can be factored as 3*5*6*7, where 5, 6, and 7 are the three consecutive numbers. N...原创 2018-08-04 17:18:16 · 280 阅读 · 0 评论 -
A+B和C
给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。#include<stdio.h> int main(void){ int n,i; long long a,b,c; scanf("%d",&n); i=1; while(n--) { scanf("%ld%ld...原创 2018-08-01 15:26:50 · 428 阅读 · 0 评论 -
数字分类
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。#include<iostream>#in...原创 2018-08-01 15:29:00 · 354 阅读 · 0 评论 -
数素数
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。#include<iostream>#include<iomanip>#include<stdio.h> int main(){ using namespace std; int n,a[2222]; wh...原创 2018-08-01 15:32:33 · 350 阅读 · 0 评论 -
福尔摩斯的约会
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表...原创 2018-08-01 15:33:56 · 174 阅读 · 0 评论 -
程序运行时间
题目描述要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个时钟打点数C1;...原创 2018-08-06 17:54:05 · 284 阅读 · 0 评论 -
有几个PAT
题目描述字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT? 输入描述:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。 输出描述:在一行中输出给定字符串中包含多少个PAT。由于...原创 2018-08-08 16:29:52 · 732 阅读 · 2 评论