机试刷题题记
个人练习,内含必刷经典题型
Cai_CS_stu
make small improvements day after day!
展开
-
题记(23)--整除问题
给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。两个整数n(2原创 2024-01-22 19:42:18 · 344 阅读 · 0 评论 -
题记(21)--字符串排序
可能有多组测试数据,对于每组数据, 将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。根据输入的字符串个数来动态分配存储空间(采用new()函数)。测试数据有多组,注意使用while()循环输入。先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串少于一百个字符。如果在输入过程中输入的一个字符串为“stop”,也结束输入。然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。字符串的个数,以及该组字符串。原创 2024-01-20 20:57:47 · 360 阅读 · 0 评论 -
题记(18)--日志排序
有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录: “hs_10000_p”是计算任务的名称, “2007-01-17 19:22:53,315”是计算任务开始执行的时间“年-月-日 时:分:秒,毫秒”, “253.035(s)”是计算任务消耗的时间(以秒计) hs_10000_p 2007-01-17 19:22:53,315 253.035(s) 请你写一个程序,对日志中记录计算任务进行排序。时间消耗少的计算任务排在前面,时间消耗多的计算任务排在后面。原创 2024-01-18 13:34:40 · 1061 阅读 · 0 评论 -
题记(19)--进制转换
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。数据可能存在包含前导零的情况。可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。原创 2024-01-19 21:01:16 · 381 阅读 · 0 评论 -
题记(22)--计算表达式
存在多组数据,每组数据一行,表达式不存在空格。对于一个不存在括号的表达式进行计算。原创 2024-01-21 23:21:54 · 381 阅读 · 0 评论 -
题记(17)--手机键盘
按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。现在给出一串字符,需要计算出它所需要花费的时间。输入可能包括多组数据,对于每组数据,输出按出Input所给字符串所需要的时间。原创 2024-01-15 19:43:06 · 521 阅读 · 0 评论 -
题记(16)--奇偶校验
可能有多组测试数据,对于每组数据, 对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。输入包括一个字符串,字符串长度不超过100。原创 2024-01-13 22:38:19 · 385 阅读 · 1 评论 -
题记(20)--Primary Arithmetic
【代码】题记(20)--Primary Arithmetic。原创 2024-01-20 19:49:44 · 362 阅读 · 0 评论 -
题记(39)--约数个数(大数据情况)
输入的第一行为N,即数组的个数(N<=1000) 接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)可能有多组输入数据,对于每组输入数据, 输出N行,其中每一行对应上面的一个数的约数的个数。输入n个整数,依次输出每个数的约数的个数。原创 2024-02-03 17:55:53 · 611 阅读 · 0 评论 -
题记(36)--编排字符串(栈的应用)
第一行为字符串个数m,接下来m行每行一个字符串,m不超过100,每个字符串长度不超过20。请输入字符串,最多输入4 个字符串,要求后输入的字符串排在前面,例如。输出:1=Alan 2=Peter 3=David 4=EricZ。输出:1=Jane 2=Alan 3=Peter 4=David。输出:1=Peter 2=David 3=EricZ。输出m行,每行按照样例格式输出,注意用一个空格隔开。输出:1=David 2=EricZ。输出:1=EricZ。原创 2024-01-30 20:33:33 · 487 阅读 · 0 评论 -
题记(38)--整数的最大素因子
对于给定的字符序列,从左至右将所有的数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31,),计算并输出该整数的最大素因子(如果是素数,则其最大因子为自身。对每个字符序列,取出所得整数的最大素因子,若字符序列中没有数字或者找出的整数为0,则输出0,每个整数占一行输出。有多组数据,输入数据的第一行为一个正整数,表示字符序列的数目,每组数据为一行字符序列。原创 2024-02-01 23:21:35 · 423 阅读 · 0 评论 -
题记(30)--排名
每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;以下N行,每行给出一名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号(题目号由1到M)。今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高到低输出上线考生的考号与分数,其间用1空格分隔。原创 2024-01-25 21:34:27 · 486 阅读 · 0 评论 -
题记(29)--zoj
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。是否AC的规则如下: 1. zoj能AC;2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000。对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。原创 2024-01-25 20:31:56 · 356 阅读 · 0 评论 -
题记(25)--继续畅通工程
每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。当N为0时输入结束。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。变化不大,添加了路是否修好的状态,如果状态为1,则执行Kruskal前将对应两点先Union即可。每个测试用例的输出占一行,输出全省畅通需要的最低成本。原创 2024-01-23 18:31:49 · 921 阅读 · 0 评论 -
题记(31)--哈夫曼树
哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和的最小值。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。原创 2024-01-26 20:55:58 · 537 阅读 · 0 评论 -
题记(41)--简易计算器
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。当一行中只有0时输入结束,相应的结果不要输出。读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。原创 2024-02-14 21:08:09 · 384 阅读 · 0 评论 -
题记(32)--矩阵K次幂
第一行:两个整数n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,含义如上所示。接下来有n行,每行n个正整数,其中,第i行第j个整数表示矩阵中第i行第j列的矩阵元素Pij且(0<=Pij<=10)。另外,数据保证最后结果不会超过10^8。对于每组测试数据,输出其结果。格式为: n行n列个整数,每行数之间用空格隔开,注意,每行最后一个数后面不应该有多余的空格。给定一个n*n的矩阵,求该矩阵的k次幂,即P^k。原创 2024-01-27 19:24:10 · 813 阅读 · 0 评论 -
题记(42)--EXCEL排序
每个测试用例的第1行包含两个整数 N (N<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;原创 2024-02-15 20:30:44 · 681 阅读 · 0 评论 -
题记(28)--A+B(字符串操作)
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.对每个测试用例输出1行,即A+B的值.原创 2024-01-24 19:04:27 · 368 阅读 · 0 评论 -
题记(33)--括号匹配(栈的应用)
请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。原创 2024-01-28 22:13:53 · 386 阅读 · 0 评论 -
题记(29)--魔咒词典
首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔咒] 对应功能 其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。词典最后一行以“@END@”结束,这一行不属于词典中的词条。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。原创 2024-01-24 22:08:50 · 425 阅读 · 0 评论 -
题记(24)--日期差值
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD。每组数据输出一行,即日期差值。原创 2024-01-22 21:52:32 · 415 阅读 · 0 评论 -
题记(27)--寻找大富翁
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.请输出前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.黑龙江ZD市共有n个人,请找出该镇上的前m个大富翁.考察nlogn的排序,暴力会超时。原创 2024-01-23 21:38:55 · 329 阅读 · 0 评论 -
题记(40)--二次方程计算器
每个案例输出两个实数(由小到大输出,中间由空格隔开),保留两位小数;如果无解,则输出“No Solution”。每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式。设计一个二次方程计算器。原创 2024-02-13 18:00:25 · 513 阅读 · 0 评论 -
题记(26)--Sharing(链表公共后缀)
【代码】题记(26)--Sharing(链表公共后缀)原创 2024-01-23 21:02:47 · 1043 阅读 · 0 评论 -
题记(34)--围圈报数(循环链表)
N 个人围成一圈顺序编号,从1 号开始按1、2、3 顺序报数,报3 者退出圈外,其余的人再从1、2、3 开始报数,报3 的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。输入第一行为整数m表示有m组测试数据,接下来m行每行一个整数N,N不超过50。输出m行,每行表示题目所求,用空格隔开。原创 2024-01-29 19:27:55 · 432 阅读 · 0 评论 -
题记(35)--日期累加
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。设计一个程序能计算一个日期加上若干天后是什么日期。输出m行,每行按yyyy-mm-dd的个数输出。原创 2024-01-30 19:55:38 · 494 阅读 · 0 评论 -
题记(37)--单词识别
输入一个英文句子,把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来,次数一样的按照单词小写的字典序排序输出,要求能识别英文单词和句号。输入为一行,由若干个单词和句号组成。原创 2024-01-31 19:21:56 · 519 阅读 · 0 评论 -
题记(50)--L1-020 帅到没朋友
(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。(≤100),是已知朋友圈的个数;超过1的朋友圈里都至少有2个不同的人。个待查询的ID,以空格分隔。原创 2024-03-08 19:39:18 · 473 阅读 · 0 评论 -
题记(44)--打牌
牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。每组输入两个字符串(字符串大小不超过100)a,b。a字符串代表手中牌,b字符串代表出的牌。[5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大。[2]两张 如44 则55,66,77,...,99可压过。[1]一张 如4 则5...9可压过。[4]四张 如4444 规则如[2][3]三张 如444 规则如[2]压过输出YES 否则NO。原创 2024-02-19 20:25:41 · 337 阅读 · 0 评论 -
题记(52)--古风排版
输入在第一行给出一个正整数N(原创 2024-03-11 12:58:06 · 327 阅读 · 0 评论 -
题记(53)--L1-046 整除光棍
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。现在,你的程序要读入一个整数。可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。然后,经过计算,输出两个数字:第一个数字。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除。原创 2024-03-13 18:15:29 · 426 阅读 · 0 评论 -
题记(57)--L1-080 乘法口诀数列
本题要求你从任意给定的两个 1 位数字 a1 和 a2 开始,用乘法口诀生成一个数列 {an},规则为从 a1 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为数列的一项。输入在一行中给出 3 个整数,依次为 a1、a2 和 n,满足 0≤a1,a2≤9,0<n≤10^3。在一行中输出数列的前 n 项。数字间以 1 个空格分隔,行首尾不得有多余空格。原创 2024-03-18 18:42:56 · 369 阅读 · 0 评论 -
题记(51)--L1-023 输出GPLT
这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按。给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按。输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。在一行中按题目要求输出排序后的字符串。的顺序打印,直到所有字符都被输出。原创 2024-03-08 20:01:51 · 359 阅读 · 0 评论 -
题记(48)--L1-016 查验身份证
按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出。首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。原创 2024-03-07 20:03:44 · 418 阅读 · 0 评论 -
题记(44)--矩阵旋转
任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。如果旋转角度的结果有多个,则输出最小的那个。每组数据第一行输入n(1<=n<=9),从第二行开始输入两个n阶矩阵。原创 2024-02-18 19:31:48 · 399 阅读 · 0 评论 -
题记(47)--连续因子
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按。输入在一行中给出一个正整数 N(1<N<2^31)。原创 2024-03-03 19:33:01 · 398 阅读 · 0 评论 -
题记(49)--L1-018 大本钟
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。根据当前时间替大笨钟敲钟,即在一行中输出相应数量个。下面就请你写个程序,根据当前时间替大笨钟敲钟。的格式给出当前时间。原创 2024-03-08 19:00:36 · 412 阅读 · 0 评论 -
题记(55)--L1-059 敲笨钟
其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。对每一行诗句,判断其是否压“ong”韵。如果是压此韵的,就按题面方法糟改之后输出,输出格式同输入;题目保证每个字的拼音不超过 6 个字符,每行字符的总长度不超过 100,并且下半句诗至少有 3 个字。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。原创 2024-03-15 17:50:32 · 362 阅读 · 0 评论 -
题记(56)--L1-071 前世档案
网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。随后 M 行,每行顺次给出玩家的 N 个回答。对每个玩家,在一行中输出其对应的结论的编号。原创 2024-03-17 11:40:32 · 609 阅读 · 0 评论