Introducción
En este desafío, su tarea es generar el código ISBN-10 para libros dado su código ISBN-13, suponiendo que dicho código exista. Tal código ISBN-13 consta de varias partes separadas por -
:
978-GG-PPPP-TTT-C
Las letras G
(grupo), P
(editor), T
(título) y C
(suma de verificación) representan un dígito. Para el propósito de este desafío, la agrupación y el cálculo de C
(ver este desafío ) no son interesantes y eliminaremos todos los guiones para simplificar esta tarea.
Un número ISBN-10 tiene un diseño muy similar:
GG-PPPP-TTT-c
Las letras G
, P
y T
son las mismas que para el ISBN de 13 dígitos, sin embargo, c
son diferentes (y se calculan utilizando un algoritmo diferente). El dígito c
se elige de tal manera que se cumpla la siguiente equivalencia (dígitos en orden):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Ejemplo
Consideremos el número ISBN 9780345391803
: para obtener su código ISBN-10 correspondiente, simplemente eliminamos 978
el 3
rendimiento inicial y la suma de comprobación 034539180
.
A continuación, debemos calcular la nueva suma de verificación:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
El siguiente número divisible por 11
es 187
, entonces la nueva suma de verificación es 2
y, por lo tanto, el código ISBN-10 resultante 0345391802
.
Reglas
- Su entrada siempre tendrá un número ISBN-10 correspondiente (es decir, tiene exactamente 13 dígitos y comienza con
978
) - La entrada no necesariamente tiene que ser un ISBN-13 válido (p. Ej.
9780000000002
) - Le garantizamos que el ISBN resultante no terminará con
X
- Puede tomar la entrada como un entero o cadena (con o sin guiones), sin embargo, no se permite una lista de dígitos calculada previamente
- Su salida debe ser un número ISBN-10 válido (con o sin guiones)
- Su salida puede ser un entero o una cadena (de nuevo, no hay listas de dígitos)
Casos de prueba
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
Tenga en cuenta los ceros a la izquierda!
0-684-84328-5
y99921-58-10-7
, la primera parte (0
y99921
respectivamente) es el grupo de registro, la segunda parte es el editor, y así sucesivamente.