ISBN 驗證器

ISBN 驗證器

中等

說明

ISBN-10 驗證流程 用來驗證書籍識別號碼。這些號碼通常包含連字號,看起來像這樣:3-598-21508-8

ISBN

ISBN-10 格式由 9 個數字(0 到 9)加上一個檢查字元(只能是數字或 X)組成。當檢查字元是 X 時,代表數值「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;否則就是無效的。

範例

我們以3-598-21508-8這組 ISBN-10 為例。將它代入公式後,得到:

(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。

加分任務

  • 從輸入的 ISBN-10 產生有效的 ISBN-13(也許再用衍生出來的驗證器驗證一次)。

  • 產生有效的 ISBN,甚至可以從給定的起始 ISBN 產生。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Delphi Pascal Exercism

準備好開始 ISBN 驗證器 了嗎?

註冊 Exercism,透過 76 個練習 和真人引導來學習並精通 Delphi Pascal,全部免費。