ISBN-10 用于标识图书,由 9 位数字和 1 位校验字符组成。最后一位可以是数字,也可以是大写 X;X 表示数值 10。
任务说明
使用 ISBN-10 校验规则验证图书编号。编号通常包含连字符,例如 3-598-21508-8。
ISBN
ISBN-10 由 9 个数字和一个校验字符组成。校验字符只能是数字或 X,X 表示 10。输入可以带连字符,也可以不带,按下式检查:
(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 1) mod 11 == 0
结果为 0 时有效,否则无效。
示例
将 3-598-21508-8 代入公式:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
结果为 0,因此有效。
实现任务
给定字符串,检查是否为有效 ISBN-10。计算校验值之前,需要正确预处理和解析输入。
程序应同时支持带连字符和不带连字符的编号。
注意事项
字符串转数字在某些语言中容易出错,本题校验位还可能为 X,代表 10。例如 3-598-21507-X 是有效 ISBN-10。