- 23, Oct 2024
- #1
Введение
В этом задании ваша задача — сгенерировать код ISBN-10 для книг с учетом их кода ISBN-13, предполагая, что такой код существует. Такой код ISBN-13 состоит из нескольких частей, разделенных
:9780000000002 -> 0000000000 9780201882957 -> 0201882957 9781420951301 -> 1420951300 9780452284234 -> 0452284236 9781292101767 -> 1292101768 9780345391803 -> 0345391802
X
Буквы 9780000000002
(group), 978
(издатель), 0345391802
(title) and 2
(контрольная сумма) все обозначают одну цифру. Для целей этой задачи группировка и вычисление 187
(see этот вызов) не интересны, и мы опустим все дефисы, чтобы упростить задачу.
Номер ISBN-10 имеет очень похожую структуру:
11
Буквы 10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
, 034539180
и 3
are the same as for the 13 digits ISBN, however 978
отличается (и вычисляется с использованием другого алгоритма). цифра 9780345391803
is chosen in a way such that the following equivalence holds (digits in order):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
Пример
Давайте рассмотрим номер ISBN c
: To get its corresponding ISBN-10 code we simply drop the leading c
и контрольная сумма T
yielding P
.
Далее нам нужно вычислить новую контрольную сумму:
G
Следующее число, которое делится на GG-PPPP-TTT-c
is C
, поэтому новая контрольная сумма C
and thus the resulting ISBN-10 code T
.
Правила
- Ваш ввод всегда будет иметь соответствующий номер ISBN-10 (т. е. он имеет длину ровно 13 цифр и начинается с
P
) - Ввод не обязательно должен быть действительным ISBN-13 (например.
G
) - Вам гарантировано, что полученный ISBN не будет заканчиваться на
978-GG-PPPP-TTT-C
- Вы можете принимать входные данные в виде целого числа или строки (с дефисами или без них), однако заранее вычисленный список цифр не допускается.
- Ваш вывод должен быть действительным номером ISBN-10 (с дефисами или без них).
- Ваш вывод может быть целым числом или строкой (опять же без списков цифр).
Тестовые случаи
-
Обратите внимание на ведущие нули!
#код-гольф #математика #контрольная сумма