1031 查驗身份證 Python語言
1031 查驗身份證(15)(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 6 5 4 3 2
現在給定一些身份證號碼,請你驗證校驗碼的有效性,並輸出有問題的號碼。
輸入格式:
輸入第一行給出正整數N(<= 100)是輸入的身份證號碼的個數。隨後N行,每行給出1個18位身份證號碼。
輸出格式:
按照輸入的順序每行輸出1個有問題的身份證號碼。這裡並不檢驗前17位是否合理,只檢查前17位是否全為數字且最後1位校驗碼計算準確。如果所有號碼都正常,則輸出“All passed”。
輸入樣例1:
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
輸出樣例1:
12010X198901011234
110108196711301866
37070419881216001X
輸入樣例2:
2
320124198808240056
110108196711301862
輸出樣例2:
All passed
問題分析:注意校驗碼中的x是大寫
程式:
x = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] y = ['1','0','X','9','8','7','6','5','4','3','2'] n = int(input()) m = 0 for i in range(n): num = str(input()) if len(num)>18: print(num) m = 1 else: a = num[:17] c = True b = 0 for j in range(len(a)): try: b+=int(a[j])*x[j] except: c = False print(num) m = 1 break if c: b = b%11 if y[b]!=num[-1]: print(num) m = 1 if m==0: print('All passed')
相關推薦
1031 查驗身份證 Python語言
1031 查驗身份證(15)(15 分) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11
PTA C語言版 1031 查驗身份證(15)(15 分)
1031 查驗身份證(15)(15 分) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11
1031. 查驗身份證(15)
ret 分配 身份證號碼 bsp 順序 scan OS 輸入格式 輸出格式 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8
PAT乙級 1031 查驗身份證
一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11取模得到值Z;最後按照以下關係對應Z值與校驗碼M的值:
1031 查驗身份證——C/C++實現
題目 1031 查驗身份證 (15 point(s)) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將
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值與校驗
1031 查驗身份證 (未完)
#include <stdio.h> #include <stdlib.h> int main() { int n ; scanf("%d",&n); int sum[100] = {0} ,i,j; int a[100][18];
PAT 乙級 1031 查驗身份證
1031 查驗身份證 (15 point(s)) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計
1031 查驗身份證 (15 分
本題用了判斷是否是數字的函式,isdigit(char) 函式,其餘沒有什麼難點; ps:昨天在寫本題時,無論怎麼寫都有錯,所以當自己遇到困難時,應該暫時放下,等到自己心情平靜下來了,才繼續往下面寫。 #include<cstdio> #include<iostream&g
PAT乙1031. 查驗身份證(15)
題目在這裡 1031. 查驗身份證(15) 時間限制 200 ms 記憶體限制 65536 kB 程式碼長度限制
PAT乙級—1031. 查驗身份證(15)-native
一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11取模得到值Z;最後按照以下關係
PAT (Basic Level) Practice (中文) 1031 查驗身份證 (15 分)(C++)
1031 查驗身份證 (15 分) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11取模得到值Z;
【算法筆記】B?1031 查驗身份證
pre list font -o tex ble color 算法筆記 日期 1031 查驗身份證 (15 分) 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,
PAT——乙級1006:換個格式輸出整數&乙級1021:個位數統計&乙級1031:查驗身份證
all tst 順序 sub ner 簡單的 驗證 乙級 wrong 1006 換個格式輸出整數 (15 point(s)) 讓我們用字母 B 來表示“百”、字母 S 表示“十”,用 12...n 來表示不為零的個位數字 n(<10),換個格式來輸出任一個
查驗身份證(c語言)
一個合法的身份證號碼由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
L1-016.查驗身份證
nbsp 是否 所有 pre 分配 關系 格式 有效 取模 一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後
求斐波那契數的python語言實現---遞歸和叠代
put bsp print span return spa number n-2 遞歸實現 叠代實現如下: def fab(n): n1 = 1 n2 = 1 if n<1: print
批量安裝/卸載手機apk--python語言
listdir edi -- pri def shel time style pen import osimport timefiledir = "D:\\app"def install(): files = os.listdir(filedir) for fi
用Python語言設計GUI界面
list head for qt4 雙擊 data- com http 彈出 我們大家都編寫過程序,但是如果能夠設計一個GUI界面,會使程序增添一個很大的亮點!今天就讓我們來用目前十分流行的python語言寫出一個最基本的GUI,為日後設計更加漂亮的GUI打下基礎。
selenium自動化實戰-基於python語言(二: 編寫腳本)
獲取 pat 打開 border 命令 需要 框架 attribute 一個 上一篇文章說到顯示等待和隱式等待語句,我們繼續學習下面的命令方法。 8. 定位一組元素 這裏書上是自己寫了一個頁面代碼,通過訪問本地這個頁面來舉例。但我覺得找一個現有的頁面自己琢磨更有意思,而且