Grady_1234
2019-10-19 13:43
采纳率: 90.9%
浏览 370
已采纳

这个问题应该怎么解决?

5.中华人民共和国居民身份证号码由17位数字和1位校验码组成。其中,前6位为所在地编号,第7~14位为出生年月日,第15~17位为登记流水号,其中第17位偶数为女性,奇数为男性。效验码的生成规则如下:
将前面的身份证号码17位数字分别乘以不同的系数。第1~17位的系数分别为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,将这17位数字和系数相乘的结果相加,用相加的结果与11求模,余数结果只能是0,1,2,3,4,5,6,7,8,9,10这11个数字,它们分别对应的最后一位身份证的号码为1,0,X,9,8,7,6,5,4,3,2。
例如:如果余数是2,最后一位数字就是罗马数字X,如果余数是10,则身份证最后一位就是2.
请设计程序实现输入18为身份证号,辨别其真伪。若为真,则进一步判断性别;若不是18位或身份证号非法,则提示重新输入。
提示:定义如下两个元组,对输入字符串进行遍历。
factor=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
last=(“1”, “0”, “X”, “9”, “8”, “7”, “6”, “5”, “4”, “3”, “2”)

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题