A. 身份证号校验

    传统题 1000ms 256MiB

身份证号校验

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

中华人民共和国居民身份证号码共 18 位,其中前 17 位为数字本体码,第 18 位为校验码。 作为尾号的校验码,是按统一的公式计算出来的,校验码的计算方法为:

(1)将身份证前 17 位分别乘以不同的系数,系数依次为 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2;

(2)将这 17 位数字和系数相乘的结果相加;

(3)求用上述相加的和除以 11 的余数;

(4)余数只可能有 0,1, 2... 9,10 共 11 个数字,分别对应校验码 1,0,X,9,8,7,6,5,4,3,2。

例如:身份证号34052419800101001X,计算 3 * 7+4 * 9+0 * 10+5 * 5+......+1 * 2 = 189,用 189 除以 11 得出余数 2,对应的校验码是 X。

编写程序,判断输入的身份证号码的校验码是否正确,正确输出“Yes”,否则输出“No”。

Format

Input

一行:身份证号码。

Output

“Yes”或“No”

Samples

34052419800101001X
Yes

C++练习

未认领
状态
已结束
题目
6
开始时间
2022-6-4 12:00
截止时间
2022-6-12 11:59
可延期
0 小时