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