Треки
/
Pyret
Pyret
/
Вправи
/
Перевірка ISBN
Перевірка ISBN

Перевірка ISBN

Легка

Вказівки

Процес перевірки ISBN-10 допомагає підтвердити, що ідентифікаційний номер книжки правильний. Зазвичай такі номери містять дефіси та мають такий вигляд: 3-598-21508-8

ISBN

Формат ISBN-10 - це 9 цифр (від 0 до 9) плюс один контрольний символ (або цифра, або тільки X). Якщо контрольний символ - це X, він позначає значення «10». Такі номери записують як із дефісами, так і без них, а їхню правильність можна перевірити за такою формулою:

(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 1) mod 11 == 0

Якщо результат дорівнює 0, тоді ISBN-10 правильний, інакше він неправильний.

Приклад

Візьмімо ISBN-10 3-598-21508-8. Підставмо його у формулу й отримаємо:

(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0

Оскільки результат дорівнює 0, це доводить, що наш ISBN правильний.

Завдання

Маючи рядок тексту (англ. string), програма має перевірити, чи є наданий рядок тексту правильним ISBN-10. Щоб це зробити, потрібно подумати про попередню обробку та розбір рядка тексту перед обчисленням контрольної цифри ISBN.

Програма має вміти перевіряти ISBN-10 як із розділовими дефісами, так і без них.

Застереження

Перетворення рядків тексту на числа буває непростим у деяких мовах. Тепер це ще складніше, бо контрольна цифра ISBN-10 може бути X (що позначає «10»). Наприклад, 3-598-21507-X - це правильний ISBN-10.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Pyret Exercism

Час розпочати Перевірка ISBN?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Pyret, а також 66 вправ та справжнє наставництво від людей, і все це безкоштовно.