A5556.身份证验证

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

你需要实现一个身份证合法性校验程序:

一个合法的身份证包含17位数字+1位校验码,校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:[7910584216379105842][7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]

假如身份证号为:114514...

那么这个身份证的权值为:1×7+1×9+4×10+5×5......1\times 7 + 1 \times 9 + 4\times 10 + 5 \times 5 ......

然后将计算的权值对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z0 1 2 3 4 5 6 7 8 9 10
M1 0 X 9 8 7 6 5 4 3 2

下面给出一个身份证,请判断它的合法性。

输入格式

输入一个长度为 1818 的待验证字符串。

输出格式

若该字符串是身份证号,输出 Yes,否则输出 No

输入输出样例

  • 输入#1

    12010X198901011234

    输出#1

    No
  • 输入#2

    320124198808240056

    输出#2

    Yes
  • 输入#3

    litiansuo1145141919X

    输出#3

    No
首页