Процес перевірки ISBN-10 допомагає підтвердити, що ідентифікаційний номер книжки правильний.
Зазвичай такі номери містять дефіси та мають такий вигляд: 3-598-21508-8
Формат 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.
Зареєструйтеся на Exercism, щоб вивчати й опановувати C++, а також 19 концепцій100 вправ та справжнє наставництво від людей, і все це безкоштовно.