2013-02-25 51 views
0

我正在做我的功課,併爲這個特定的問題,堅持了5個小時。Java ISBN檢查器/計算器,如何解決?

最後一位數字d10是一個校驗和,它是根據以下公式從 根據其他九位數字計算得出的:(d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9)%11; 如果校驗和爲10,則根據ISBN約定將最後一位數字表示爲X.

編寫一個程序,提示用戶輸入前9位數字並顯示10位ISBN(包括前導零)。您的程序應該將輸入讀取爲整數。 例如,如果輸入013601267,程序應顯示0136012671. 如果用戶省略前導零,程序應繼續添加前導零。例如,如果您輸入12345,程序應顯示「正確的ISBN編號爲000」。

我用於循環,開關和一切,但我的知識,我無法解決它。 我可以計算d10,但問題是.. 1)我不明白如何計算013601267,因爲它不是0 1 3 6 ... 因爲我使用掃描儀對象,我不知道如何繼續。 2)我不知道如何添加前導零。

如果有人有這個問題的答案,或有人可以告訴我, PLZ幫助我!

+0

你能證明你到目前爲止做了什麼嗎?你的代碼? – knowbody 2013-02-25 00:53:37

回答

2

首先,將輸入解析爲String

然後,循環通過String並添加每個字符(在int形式,做必要的計算),以int類型的總和變量。 (乘以每個char + 1的指數)。

最後,做模數。然後,如果結果等於10,則將X附加到ISBN字符串中;否則,附加模數運算的結果。

編輯:添加的零,計數的字符數在String形式的ISBN,再加入對數零的 - 9書號的開始。

希望這有助於!

+0

感謝您的建議,我解決了它!!!!!!!!非常感謝你:) – 2013-02-25 07:06:20