ISBN-10 검증 과정은 도서 식별 번호를 검증하는 데 사용해요. 이런 번호에는 보통 하이픈이 들어 있고, 3-598-21508-8처럼 생겼어요.
ISBN-10 형식은 숫자 9개(0부터 9까지)에 검사 문자 하나(숫자이거나 X만 가능해요)를 더한 형태예요. 검사 문자가 X인 경우 이는 값 '10'을 나타내요. ISBN-10은 하이픈이 있든 없든 전달될 수 있고, 다음 공식으로 유효성을 검사할 수 있어요:
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 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을 모두 검증할 수 있어야 해요.
어떤 언어에서는 문자열을 숫자로 변환하는 것이 까다로울 수 있어요.
게다가 ISBN-10의 검사 숫자가 'X'('10'을 나타내요)일 수 있으니 더 까다롭죠. 예를 들어 3-598-21507-X는 유효한 ISBN-10이에요.
입력받은 ISBN-10에서 유효한 ISBN-13을 생성해요(그리고 파생된 검증기로 다시 검증해 볼 수도 있어요).
유효한 ISBN을 생성해요. 주어진 시작 ISBN에서 시작할 수도 있어요.
Exercism에 가입하고 Delphi Pascal 트랙을 연습 문제 76개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.