Wprowadzenie
W tym wyzwaniu Twoim zadaniem jest wygenerowanie kodu ISBN-10 dla książek, biorąc pod uwagę jego kod ISBN-13, przy założeniu, że taki kod istnieje. Taki kod ISBN-13 składa się z kilku części oddzielonych -
:
978-GG-PPPP-TTT-C
Litery G
(grupa), P
(wydawca), T
(tytuł) i C
(suma kontrolna) oznaczają jedną cyfrę. Na potrzeby tego wyzwania grupowanie i obliczanie C
(patrz to wyzwanie ) nie są interesujące, a my upuszczamy wszystkie łączniki, aby uprościć to zadanie.
Numer ISBN-10 ma bardzo podobny układ:
GG-PPPP-TTT-c
Litery G
, P
i T
są takie same jak dla 13 cyfr ISBN, jednak c
różni się (i jest obliczany przy użyciu innego algorytmu). Cyfra c
jest wybierana w taki sposób, aby zachowała się następująca równoważność (cyfry w kolejności):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Przykład
Rozważmy numer ISBN 9780345391803
: Aby uzyskać odpowiadający mu kod ISBN-10 po prostu upuścić wiodącym 978
i suma kontrolna 3
plonowanie 034539180
.
Następnie musimy obliczyć nową sumę kontrolną:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
Następną liczbą podzielną przez 11
jest 187
więc nowa suma kontrolna, 2
a tym samym wynikowy kod ISBN-10 0345391802
.
Zasady
- Twój wpis zawsze będzie miał odpowiedni numer ISBN-10 (tzn. Ma dokładnie 13 cyfr i zaczyna się od
978
) - Dane wejściowe niekoniecznie muszą być poprawne ISBN-13 (np.
9780000000002
) - Masz gwarancję, że wynikowy numer ISBN się nie skończy
X
- Możesz przyjmować dane wejściowe jako liczbę całkowitą lub ciąg znaków (z łącznikami lub bez), jednak wstępnie obliczona lista cyfr jest niedozwolona
- Twój wynik musi być poprawnym numerem ISBN-10 (z łącznikami lub bez)
- Twój wynik może być liczbą całkowitą lub łańcuchem (ponownie bez list cyfr)
Przypadki testowe
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
Uwaga wiodące zera!
0-684-84328-5
i99921-58-10-7
pierwszej części (0
i99921
odpowiednio) jest grupa rejestracyjna, druga część to wydawca i tak dalej.