PAT (Basic Level) Practice (中文)
无耻柠檬兵
选择比努力更重要
展开
-
1001 害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数...原创 2019-02-25 11:53:38 · 94 阅读 · 0 评论 -
1022 D进制的A+B
1022 D进制的A+B (20 分) 输入两个非负 10 进制整数 A 和 B(≤230−1)(≤2^{30}-1)(≤230−1),输出 A+B 的 D (1<D≤10)进制数。 输入格式: 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式: 输出 A+B 的 D 进制数。 输入样例: 123 456 8 输出样例: 1103 #include <cstdio> ...原创 2019-02-25 14:36:11 · 115 阅读 · 0 评论 -
1024 科学计数法(有测试点没通过)
1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。 输入格式: 每个输入包含 1...原创 2019-02-25 14:36:21 · 903 阅读 · 0 评论 -
1026 程序运行时间
1026 程序运行时间 (15 分) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调...原创 2019-02-25 14:36:30 · 156 阅读 · 0 评论 -
1027 打印沙漏
1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多...原创 2019-02-25 14:36:38 · 142 阅读 · 0 评论 -
1028 人口普查
1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数 N,取值在(0,105](0,10^{...原创 2019-02-25 14:36:48 · 137 阅读 · 0 评论 -
1031 查验身份证
1031 查验身份证 (15 分) 一个合法的身份证号码由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 10 M:1 0 X 9 8 7...原创 2019-02-25 14:36:57 · 144 阅读 · 0 评论 -
1036 跟奥巴马一起编程
1036 跟奥巴马一起编程 (15 分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。 输出格式: 输出由给定...原创 2019-02-25 14:37:12 · 154 阅读 · 0 评论 -
1037 在霍格沃茨找零钱
1037 在霍格沃茨找零钱 (20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon....原创 2019-02-25 14:37:55 · 142 阅读 · 0 评论 -
1041 考试座位号
1041 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。 输入格式: 输入第一行给出一个正整数 N(≤10...原创 2019-02-25 14:38:04 · 139 阅读 · 0 评论 -
1021 个位数统计
1021 个位数统计 (15 分) 给定一个 k 位整数,请编写程序统计每种不同的个位数字出现的次数。例如:给定一个 k 位整数N=dk−110k−1+d1101+d0(0≤di≤9,i=0,…,k−1,dk−1>0)N=d_{k-1}10^{k-1}+d_{1}10^{1}+d_{0}(0≤d_{i}≤9,i=0,…,k-1,d_{k-1}>0)N=dk−110k−...原创 2019-02-25 14:36:00 · 281 阅读 · 0 评论 -
1018 锤子剪刀布
1018 锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10 5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“...原创 2019-02-25 14:35:51 · 173 阅读 · 0 评论 -
1016 部分A+B
1016 部分A+B (15 分) 正整数 A 的“DAD_{A}DA (为 1 位整数)部分”定义为由 A 中所有DAD_{A}DA 组成的新整数 PAP_{A}PA 。例如:给定 A=3862767,DAD_{A}DA =6,则 A 的“6 部分”PAP_{A}PA 是 66,因为 A 中有 2 个 6。 现给定A、DA、B、DBA、D_{A}、B、D_{B}A、DA、...原创 2019-02-25 14:35:18 · 118 阅读 · 0 评论 -
1002 写出这个数
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100 。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 123456789098765432112345...原创 2019-02-25 11:56:32 · 84 阅读 · 0 评论 -
1004 成绩排名
1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 … … … 第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字...原创 2019-02-25 11:58:11 · 79 阅读 · 0 评论 -
1006 换个格式输出整数
1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。 输入格式: 每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。 输出格式: 每...原创 2019-02-25 12:00:44 · 97 阅读 · 0 评论 -
1008 数组元素循环右移问题
1008 数组元素循环右移问题 (20 分) 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由 (A0A1…AN−1)\ (A_{0}A_{1}…A_{N-1}) (A0A1…AN−1)变换为 (AN−M…AN−1A0A1…AN−M−1)\ (A_{N-M}…A_{N-1}A_{0}A...原创 2019-02-25 13:11:24 · 90 阅读 · 0 评论 -
1009 说反话
1009 说反话 (20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子。 输入样例: Hello ...原创 2019-02-25 14:33:41 · 96 阅读 · 0 评论 -
1010 一元多项式求导
1010 一元多项式求导 (25 分) 设计函数求一元多项式的导数。(注:x n (n为整数)的一阶导数为nx n−1 。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是...原创 2019-02-25 14:34:39 · 117 阅读 · 0 评论 -
1011 A+B 和 C
1011 A+B 和 C (15 分) 给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Case #X: true 如果 A+B...原创 2019-02-25 14:34:49 · 110 阅读 · 0 评论 -
1012 数字分类
1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A 1 = 能被 5 整除的数字中所有偶数的和; A 2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n 1 −n 2 +n 3 −n 4 ⋯; A 3 = 被 5 除后余 2 的数字的个数; A 4 = ...原创 2019-02-25 14:35:00 · 150 阅读 · 0 评论 -
1014 福尔摩斯的约会
1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&amp;hgsfdk d&amp;Hyscvnm 。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同...原创 2019-02-25 14:35:09 · 108 阅读 · 0 评论 -
1046 划拳
1046 划拳 (15 分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。 输入格式: 输入第一行先给出一个正整数 N(≤100),随后 N 行...原创 2019-02-25 14:38:12 · 198 阅读 · 0 评论