PAT(Basic Level) Practice--C
PsyDuuuuck
烂掉的ITer
展开
-
PAT BASIC 1083 是否存在相等的差
给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2≤N≤10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 输入样例: 8 3 5 8 6 2 1...原创 2021-10-29 22:32:25 · 134 阅读 · 0 评论 -
PAT BASIC 1082 射击比赛
本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。 输入格式: 输入在第一行中给出一个正整数 N(≤10 000)。随后 N 行,每行按下列格式给出: ID x y 其中ID是运动员的编号(由 4 位数字组成);x和y是其打出的弹洞的平面坐标(x,y),均为整数,且 0≤|x|, |y|≤100。题目保证每个运动员的编号不重复,且每人只打...原创 2021-10-29 22:01:56 · 135 阅读 · 0 评论 -
PAT BASIC 1077 互评成绩计算
在浙大的计算机专业课中,经常有互评分组报告这个环节。一个组上台介绍自己的工作,其他组在台下为其表现评分。最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平均分记为G1;老师给这个组的评分记为G2。该组得分为(G1+G2)/2,最后结果四舍五入后保留整数分。本题就要求你写个程序帮助老师计算每个组的互评成绩。 输入格式: 输入第一行给出两个正整数N(>3)和M,分别是分组数和满分,均不超过 100。随后N行,每行给出该组得到的N...原创 2021-10-29 20:54:02 · 144 阅读 · 0 评论 -
PAT BASIC 1076 Wifi密码
下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。 输入格式: 输入第一行给出一个正整数 N(≤100),随后 N 行,每行按照编号-答..原创 2021-10-28 09:14:07 · 104 阅读 · 0 评论 -
PAT BASIC 1070 结绳
1原创 2021-10-28 09:14:21 · 85 阅读 · 0 评论 -
PAT BASIC 1066 图像过滤
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。 输入格式: 输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0<M,N≤500),另外是待过滤的灰度值区间端点A和B(0≤A<B≤255)、以及指定的替换灰度值。随后M行,每行给出N个像素点的灰度值,其间以空格分隔。所有灰度值都在 [0, 255] 区间内。 输出格式: 输出按要求过滤后的图像。即输出M...原创 2021-10-28 09:14:52 · 78 阅读 · 0 评论 -
PAT BASIC 1064 朋友数
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。 输入格式: 输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于104。 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格.原创 2021-10-27 20:51:17 · 88 阅读 · 0 评论 -
PAT BASIC 1063 计算谱半径
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的n个复数空间的特征值 {a1+b1i,⋯,an+bni},它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。 现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。 输入格式: 输入第一行给出正整数 N(≤10 000)是输入的特征值的个数。随后 N 行,每行给出 1 个特征值的实部和虚部,其间以空格分隔。注意:题目保证实部和虚部均为绝对值不超过 1000 的整数。 输出格式: 在一行中输...原创 2021-10-27 20:48:18 · 71 阅读 · 0 评论 -
PAT BASIC 1061 判断题
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。 输出格式: 按照输入的顺序输出每个学生的得分,每个分数占一行。 输入样例: 3 6 2 1 3 3 4 5 0 0 1 0 1 1原创 2021-10-27 20:45:43 · 77 阅读 · 0 评论 -
PAT BASIC 1057 数零壹
给定一串长度不超过105的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。 输入格式: 输入在一行中给出长度不超过105、以回车结束的字符串。 输出格式: 在一行中先后输出 0 的个数和 1 的个数,其间以空格...原创 2021-10-27 20:43:01 · 78 阅读 · 0 评论 -
PAT BASIC 1056 组合数的和
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。 输入格式: 输入在一行中先给出 N(1<N<10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。 输出格式: 输出所有可能组合出来的2位数字的和。 输入样例: 3 2 8 5 结尾无空行 输出样例: 330 结尾无空行 ...原创 2021-10-27 20:39:40 · 109 阅读 · 0 评论 -
PAT BASIC 1047 编程团体赛
编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。 现给定所有队员的比赛成绩,请你编写程序找出冠军队。 输入格式: 输入第一行给出一个正整数N(≤104),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正整数,成绩为 0 到 100 的整数。 输出格式: 在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题...原创 2021-10-27 20:35:53 · 168 阅读 · 0 评论 -
PAT BASIC 1046 划拳
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。 输入格式: 输入第一行先给出一个正整数N(≤100),随后N行,每行给出一轮划拳的记录,格式为: 甲喊 甲划 乙喊 乙划 其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只...原创 2021-10-27 20:33:05 · 64 阅读 · 0 评论 -
PAT BASIC 1043 输出PATest
给定一个长度不超过104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按PATestPATest....这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过104的、仅由英文字母构成的非空字符串。 输出格式: 在一行中按题目要求输出排序后的字符串。题目保证输出非空。 输入样例: redlesPayBestPATTopTeePHP...原创 2021-10-27 20:30:15 · 107 阅读 · 0 评论 -
PAT BASIC 1042 字符统计
请编写程序,找出一段给定文字中出现最频繁的那个英文字母。 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。 输入样例: This is a simple TEST. There ARE numbers and oth原创 2021-10-27 20:27:33 · 79 阅读 · 0 评论 -
PAT BASIC 1041 考试座位号
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。 输入格式: 输入第一行给出一个正整数N(≤1000),随后N行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到N编号。输入...原创 2021-10-27 20:12:33 · 89 阅读 · 0 评论 -
PAT BASIC 1039 到底买不买
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。 为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。 图 1 输入格式:原创 2021-10-25 20:59:43 · 63 阅读 · 0 评论 -
PAT BASIC 1037 在霍格沃茨找零钱
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出P和A,格式为Galleon.Sickle.Knut,其间用 1 个空格分隔。这里Galleon是 [0,107] 区间内的整数,Sickle是 [0, 17) 区间内的整...原创 2021-10-25 20:40:56 · 97 阅读 · 0 评论 -
PAT BASIC 1036 跟奥巴马一起编程
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。 输出格式: 输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。 输入.原创 2021-10-25 20:21:51 · 77 阅读 · 0 评论 -
PAT BASIC 1026 程序运行时间
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用 clock(),获得一个时钟打点数 C1;在f执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 (C2-...原创 2021-10-25 20:18:29 · 61 阅读 · 0 评论 -
PAT BASIC 1023 组个最小数
给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。 现给定数字,请编写程序输出能够组成的最小的数。 输入格式: 输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。 输出格式: 在一行中输出能够组成原创 2021-10-25 20:09:17 · 82 阅读 · 0 评论 -
PAT BASIC 1022 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 <stdio.h> int main(int argc, char const *argv[]){ int a, b, d; scan...原创 2021-10-25 20:06:25 · 87 阅读 · 0 评论 -
PAT BASIC 1021 个位数统计
给定一个k位整数N=dk−110k−1+⋯+d1101+d0(0≤di≤9,i=0,⋯,k−1,dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数N。 输出格式: 对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。 输入样例: ...原创 2021-10-25 19:56:42 · 73 阅读 · 0 评论 -
PAT BASIC 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。 输入格式: 输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0<A,B<109。 输出格式: 在一行中输出PA+PB的值。 输入样例 1: 3862767 6 13530293 ...原创 2021-10-25 19:41:34 · 54 阅读 · 0 评论 -
PAT BASIC 1006 换个格式输出整数
让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。 输入格式: 每个测试输入包含 1 个测试用例,给出正整数n(<1000)。 输出格式: 每个测试用例的输出占一行,用规定的格式输出n。 输入样例 1: 234 结尾无空行 输出样例 1: BBSSS1234 结尾无空...原创 2021-10-25 19:29:37 · 94 阅读 · 0 评论 -
PAT Basic 1001 害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想: 对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数n,...原创 2021-10-25 18:02:58 · 56 阅读 · 0 评论