Introdução
Nesse desafio, sua tarefa é gerar o código ISBN-10 para livros, considerando seu código ISBN-13, assumindo que esse código exista. Esse código ISBN-13 consiste em várias partes separadas por -
:
978-GG-PPPP-TTT-C
As letras G
(grupo), P
(editor), T
(título) e C
(soma de verificação) representam um dígito. Para os propósitos deste desafio, o agrupamento e o cálculo de C
(veja este desafio ) não são interessantes, e todos os hífens serão eliminados para simplificar essa tarefa.
Um número do ISBN-10 tem um layout muito semelhante:
GG-PPPP-TTT-c
As letras G
, P
e T
são as mesmas do ISBN de 13 dígitos, no entanto, c
são diferentes (e são calculadas usando um algoritmo diferente). O dígito c
é escolhido de forma que a seguinte equivalência seja válida (dígitos em ordem):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Exemplo
Vamos considerar o número do ISBN 9780345391803
: para obter seu código ISBN-10 correspondente, simplesmente eliminamos o líder 978
e o 3
rendimento da soma de verificação 034539180
.
Em seguida, precisamos calcular a nova soma de verificação:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
O próximo número divisível por 11
é 187
, portanto, a nova soma de verificação é 2
e, portanto, o código ISBN-10 resultante 0345391802
.
Regras
- Sua entrada sempre terá um número ISBN-10 correspondente (ou seja, tem exatamente 13 dígitos e começa com
978
) - A entrada não precisa necessariamente ser um ISBN-13 válido (por exemplo,
9780000000002
) - Você tem a garantia de que o ISBN resultante não terminará com
X
- Você pode receber a entrada como um número inteiro ou sequência (com ou sem hífens), no entanto, uma lista pré-computada de dígitos não é permitida
- Sua saída deve ser um número ISBN-10 válido (com ou sem hífens)
- Sua saída pode ser um número inteiro ou string (novamente sem listas de dígitos)
Casos de teste
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
Observe os zeros à esquerda!
0-684-84328-5
e99921-58-10-7
, a primeira parte (0
e99921
respectivamente) é o grupo de registro, a segunda parte é o editor e assim por diante.