介绍
在此挑战中,您的任务是,在给定书号为ISBN-13的情况下,为书籍生成ISBN-10代码。这样的ISBN-13代码由以下几部分组成-:
978-GG-PPPP-TTT-C
字母G(组),P(发布者),T(标题)和C(校验和)都代表一位数字。出于这一挑战的目的,分组和计算C(参见挑战)并不有趣,我们将删除所有连字符以简化此任务。
ISBN-10号的布局非常相似:
GG-PPPP-TTT-c
字母G,P和T中的相同的13位数字的ISBN,但是c是不同的(并且使用不同的算法来计算)。c选择数字的方式应使以下等价成立(数字顺序):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
例
让我们考虑一下ISBN编号9780345391803:要获得其相应的ISBN-10代码,我们只需删除前导978和校验和3yield 034539180。
接下来,我们需要计算新的校验和:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
下一个可被整除的数字11是187,因此新的校验和为2,因此得到的是ISBN-10代码0345391802。
规则
- 您的输入将始终具有一个对应的ISBN-10数字(即,该数字正好是13位数字,以开头
978) - 输入不一定是有效的ISBN-13(例如
9780000000002) - 您可以确保得到的ISBN不会以
X - 您可以将输入作为整数或字符串(带或不带连字符),但是不允许预先计算的数字列表
- 您的输出必须是有效的ISBN-10编号(带或不带连字符)
- 您的输出可能是整数或字符串(同样没有数字列表)
测试用例
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
注意前导零!


0-684-84328-5和中99921-58-10-7,第一部分(分别是0和99921)是注册组,第二部分是发布者,依此类推。