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은 유효하다는 것을 알 수 있어요.
문자열이 주어지면 프로그램은 그 문자열이 유효한 ISBN-10인지 확인해야 해요. 이를 구현하려면 ISBN의 검사 문자를 계산하기 전에 문자열을 어떻게 전처리하고 파싱할지 고민해야 해요.
프로그램은 구분용 하이픈이 있는 경우와 없는 경우 모두 ISBN-10을 검증할 수 있어야 해요.
어떤 언어에서는 문자열을 숫자로 변환하는 것이 까다로울 수 있어요.
게다가 ISBN-10의 검사 문자는 'X'('10'을 나타냄)일 수 있으므로 더욱 까다로워요.
예를 들어 3-598-21507-X는 유효한 ISBN-10이에요.