历年华中科技大学计算机考研复试机试真题
本文整理华中科技大学计算机考研机试真题,并提供详细解析与代码实现,帮助同学们了解保研机试的难度与题型分布
亲和数
题目描述
一个数的因子是指除自身以外,能整除该数的所有数。例如,6 的因子为 1、2、3 。
若存在两个数 ${X}$ 和 ${Y}$,${X}$ 的所有因子之和恰好等于 ${Y}$,且 ${Y}$ 的所有因子之和恰好等于 ${X}$,则 ${X}$ 与 ${Y}$ 构成一对亲和数。
给定多组数据,每组数据包含两个数 ${l}$ 和 ${r}$,需要找出从 ${l}$ 到 ${r}$ 之间的,具有亲和数的数字。
输入格式
第一行输入一个整数 ${n}$,表示数据的组数。接下来 ${n}$ 行,每行输入两个整数 ${X}$ 和 ${Y}$,代表一组数据。
输出格式
对于每组数据,输出从 ${X}$ 到 ${Y}$ 之间的最小亲和数。若不存在,则输出 "No"。每组输出占一行。
数据范围
${1 \le n \le 100}$, ${1 \le X \le Y \le 10^5}$
输入样例
2
200 300
250 1000
输出样例
220
284
字符串处理
题目描述
对无限输入的每行字符串进行处理。处理要求包括在字符串内数字和字母之间添加下划线,并且输出去重后的字符串,在去重时将字母大小写视为相同字符,仅保留每个字符首次出现的位置。
输入格式
每行输入一个字符串,输入可无限进行。
输出格式
对于每行输入的字符串,输出两行结果。第一行是在数字和字母之间添加下划线后的字符串;第二行是去重后的字符串,字母大小写视为相同字符。
数据范围
输入字符串长度不超过 ${1000}$,且只包含数字和字母。
输入样例1
vc60cpp
输出样例1
vc_60_cpp
vc60p
输入样例2
vc66CPP
输出样例2
vc_66_CPP
vc6P
等式填充问题
题目描述
给定数字 ${1、2、3、...、9}$,将这 ${9}$ 个数字不重复地填入以下等式的空格中:
${[][]/[]+[][]/[]=[][]/[]}$
需要满足两个条件:一是数字 ${1}$ 不能作为分母;二是等式中任一分式的分母与分子除 ${1}$ 以外不能有其他公共因子。要求输出所有满足该等式的组合情况。
输入格式
本题无输入。
输出格式
每一行输出一个满足条件的等式,等式的格式为 ${[][]/[]+[][]/[]=[][]/[]}$,其中 ${[]}$ 部分为具体数字。若存在多个满足条件的等式,则按字典序顺序依次输出,每个等式占一行。
数据范围
无
输入样例
输出样例
切牌、洗牌
题目描述
有 $2$ - $9$ 共八张扑克牌,从小到大依次叠放,需要进行 $3$ 轮切牌、洗牌的操作(切牌之后立马洗牌,再进行下一轮)。
切牌的定义如下(其实就是循环左移 $n$ 位):
原序列:$2$ $3$ $4$ $5$ $6$ $7$ $8$ $9$
切 $2$ 张
新序列:$4$ $5$ $6$ $7$ $8$ $9$ $2$ $3$
另外,如果切牌张数不在 $1$ - $7$ 之间,则是无效操作,不移动序列
洗牌的定义如下(就是将序列分为两半,然后交错插在一起):
原序列:$4$ $5$ $6$ $7$ $8$ $9$ $2$ $3$
洗牌
新序列:$4$ $8$ $5$ $9$ $6$ $2$ $7$ $3$
分别给出三次切牌的张数,问你最后的结果是多少。
输入样例
1 2 3
输出样例
27543698
表达式计算
题目描述
给你一个字符串表达式 $s$,请你实现一个基本计算器来计算并返回它的值。
表达式的符号有 $+$, $-$, $*$, $/$, $($, $)$, $<<$, $>>$, $^$, $&$, $|$,
其中定义了几个变量 $a = 1$, $b = 2$, $c = 3$, $d = 4$, $e = 5$,可能会出现要你计算 $a + 1$ 的情况。
保证表达式合法
输入样例
1+b*3+d/(2-1)+e
输出样例
16