introduction
Dans ce défi, votre tâche consiste à générer le code ISBN-10 pour les livres étant donné son code ISBN-13, en supposant qu'un tel code existe. Un tel code ISBN-13 se compose de plusieurs parties séparées par -
:
978-GG-PPPP-TTT-C
Les lettres G
(groupe), P
(éditeur), T
(titre) et C
(somme de contrôle) représentent toutes un chiffre. Aux fins de ce défi, le regroupement et le calcul de C
(voir ce défi ) ne sont pas intéressants et nous allons supprimer tous les tirets pour simplifier cette tâche.
Un numéro ISBN-10 a une disposition très similaire:
GG-PPPP-TTT-c
Les lettres G
, P
et T
sont les mêmes que pour l'ISBN à 13 chiffres, cependantc
différentes (et sont calculées à l'aide d'un algorithme différent). Le chiffre c
est choisi de manière à ce que l'équivalence suivante soit respectée (chiffres dans l'ordre):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Exemple
Considérons le numéro ISBN 9780345391803
: pour obtenir son code ISBN-10 correspondant, il suffit de supprimer le début 978
et la somme de contrôle3
qui donne 034539180
.
Ensuite, nous devons calculer la nouvelle somme de contrôle:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
Le prochain nombre divisible par 11
est 187
, donc la nouvelle somme de contrôle est2
et donc le code ISBN-10 résultant 0345391802
.
Règles
- Votre entrée aura toujours un numéro ISBN-10 correspondant (c'est-à-dire qu'elle est exactement de 13 chiffres et commence par
978
) - L'entrée ne doit pas nécessairement être un ISBN-13 valide (par exemple.
9780000000002
) - Vous êtes assuré que l'ISBN résultant ne se terminera pas
X
- Vous pouvez prendre l'entrée comme un entier ou une chaîne (avec ou sans tirets), mais une liste de chiffres précalculés n'est pas autorisée
- Votre sortie doit être un numéro ISBN-10 valide (avec ou sans tirets)
- Votre sortie peut être un entier ou une chaîne (là encore aucune liste de chiffres)
Cas de test
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
Notez les zéros non significatifs!
0-684-84328-5
et99921-58-10-7
, la première partie (0
et99921
respectivement) est le groupe d'inscription, la deuxième partie est l'éditeur, etc.