历年北京理工大学保研上机真题
2025北京理工大学保研上机真题
2024北京理工大学保研上机真题
2023北京理工大学保研上机真题
在线测评链接:https://pgcode.cn/problem?classification=1
判断身份证校验位是否正确
题目描述
给定一个身份证号码,判断其最后一位校验位是否正确。
如果不正确,给出正确的身份证号码。
身份证校验规则主要涉及中国大陆的18位居民身份证号码,其校验机制基于ISO 7064:1983标准的MOD 11-2算法。
以下是详细规则:
校验码计算步骤
-
前17位加权求和
每位数字对应权重系数(从左到右):
[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
计算公式:
S = Sum(Ai × Wi)
(Ai
为第i位数字,Wi
为对应权重) -
计算模11的余数
Y = S mod 11
-
匹配校验码
根据余数Y
对照表得到校验码C
:Y 0 1 2 3 4 5 6 7 8 9 10 C 1 0 X 9 8 7 6 5 4 3 2 (注: X
代表罗马数字10)
输入格式
输入一个18位的身份证号码。
输出格式
如果校验位正确,输出 Correct
;如果不正确,输出正确的身份证号码。
输入样例
11010519491231002X
输出样例
Correct
题目来源
2017
二分查找统计次数
题目描述
给定一个有序数组,使用二分法查找指定的数,并输出查找的次数。
输入格式
第一行包含一个整数 n n n,表示数组的长度。
第二行包含 n n n 个整数,表示有序数组的元素。
第三行包含一个整数 x x x,表示要查找的数。
输出格式
输出一个整数,表示查找的次数。
如果未找到,则输出 − 1 -1 −1。
输入样例
5
1 3 5 7 9
5
输出样例
2
题目来源
2017
学生成绩处理
题目描述
给定几组数据,每组数据包含学生的姓名和三个成绩。
要求输出所有不及格的学生,并按照平均成绩进行排序。
输入格式
每组数据包含一个字符串 n a m e name name 和三个整数 s c o r e 1 score1 score1, s c o r e 2 score2 score2, s c o r e 3 score3 score3,分别表示学生的姓名和三个成绩。
输入以文件结束符(EOF)终止。
输出格式
对于每个不及格的学生,输出其姓名和平均成绩,保留两位小数。
输出按照平均成绩升序排列。
输入样例
Alice 80 90 85
Bob 50 40 60
Charlie 70 60 65
输出样例
Bob 50.00
Charlie 65.00
题目来源
2017
最长回文串的长度和个数
题目描述
输入一个字符串,输出其最长回文串的长度,以及最长回文串的个数,不区分大小写。
输入格式
输入一个字符串 s s s。
输出格式
输出两个整数,分别表示最长回文串的长度和个数。
输入样例
aB
输出样例
1 2
输入样例
aBA
输出样例
3 1
输入样例
aaaa
输出样例
4 1
题目来源
2018
将偶数表示为两个素数之和
题目描述
输入两个整数 m m m 和 n n n ( 6 ≤ m ≤ n ≤ 50 6 \leq m \leq n \leq 50 6≤m≤n≤50),将区间 [ m , n ] [m, n] [m,n] 中的所有偶数表示为两个素数相加的形式。
输出这些素数及其出现的次数,输出次序按照素数出现的次数从多到少输出;若出现次数相同,按照素数从大到小输出;若偶数有多种素数相加形式,则把所有的情况都输出,每种情况占一行。
输入格式
输入两个整数 m m m 和 n n n,用空格分隔。
输出格式
输出每个素数及其出现的次数,按照出现次数从多到少排序,次数相同的素数按从大到小排序。
每个偶数可能有多种表示形式,每种形式占一行。
输入样例
6 10
输出样例
3 2
7 1
5 1