Вступ
У цьому завданні вашим завданням є генерування коду ISBN-10 для книг з урахуванням його коду ISBN-13, припускаючи, що такий код існує. Такий код ISBN-13 складається з декількох частин, розділених -
:
978-GG-PPPP-TTT-C
Букви G
(група), P
(видавець), T
(назва) та C
(контрольна сума) означають одну цифру. Для цієї задачі групування та обчислення C
(див. Цей виклик ) не цікаві, і ми відкинемо всі дефіси, щоб зробити це завдання простішим.
Номер ISBN-10 має дуже схожий макет:
GG-PPPP-TTT-c
Букви G
, P
і T
такі ж , як для 13 цифр ISBN, проте c
відрізняються (і обчислюються з використанням іншого алгоритму). Цифру c
вибирають таким чином, що має місце наступна еквівалентність (цифри в порядку):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Приклад
Розглянемо номер ISBN 9780345391803
: Для того, щоб отримати відповідний йому ISBN-10 код , який ми просто впустити провідним 978
і контрольна сума 3
приносить 034539180
.
Далі нам потрібно обчислити нову контрольну суму:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
Наступне число, яке ділиться на, 11
є 187
новою контрольною сумою, 2
і, таким чином, отриманий код ISBN-10 0345391802
.
Правила
- Ваш вхід завжди матиме відповідне число ISBN-10 (тобто, це рівно 13 цифр і починається з
978
) - Вхід не обов'язково повинен бути дійсним ISBN-13 (наприклад,
9780000000002
) - Ви гарантуєте, що отриманий номер ISBN не закінчиться
X
- Ви можете приймати введення як ціле число або рядок (з дефісами або без), проте попередньо обчислений список цифр заборонений
- Вихід повинен бути дійсним номером ISBN-10 (з дефісами або без)
- Ваш вихід може бути цілим чи рядковим (знову немає списків цифр)
Тестові шафи
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
Зверніть увагу на провідні нулі!
0-684-84328-5
і99921-58-10-7
, і перша частина (0
і99921
відповідно) - це реєстраційна група, друга частина - видавець тощо.