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, Pi Tsą takie same jak dla 13 cyfr ISBN, jednak cróżni się (i jest obliczany przy użyciu innego algorytmu). Cyfra cjest 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 978i suma kontrolna 3plonowanie 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 11jest 187więc nowa suma kontrolna, 2a 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-5i99921-58-10-7pierwszej części (0i99921odpowiednio) jest grupa rejestracyjna, druga część to wydawca i tak dalej.