學習軌道
/
F#
F#
/
練習
/
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 是有效的。

任務

給定一個字串,程式應檢查這個字串是否為有效的 ISBN-10。 要做到這件事,在計算 ISBN 的檢查數字之前,需要先思考如何前置處理與解析字串。

程式必須能驗證帶有分隔連字號與不帶連字號的 ISBN-10。

注意事項

在某些語言中,把字串轉換成數字可能會很棘手。 現在又更棘手了,因為 ISBN-10 的檢查數字可能是 X(代表 10)。 例如 3-598-21507-X 就是有效的 ISBN-10。

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

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

註冊 Exercism,透過 18 個概念148 個練習 和真人引導來學習並精通 F#,全部免費。