2010-09-12 134 views
4

這實際上並不是家庭作業,我只是在下週開始計算機科學之前瀏覽離散數學書中的一些問題。計算ISBN的校驗位

無論如何,其中一個問題要求我編寫一個程序來執行這個算法(它解釋)。我堅持的部分是如何獲取9位數字並將其「拆分」爲單個整數,因此可以對每個數字執行計算。

我想將數字除以100,000,000,然後取這個整數值來得到第一個數字,但我不確定如何得到其他數字。

如果這是在PHP或東西,我可以只使用爆炸(),但我想在這裏,不是問題的關鍵:P

回答

4

可以使用國防部(%),除(/)運算符。

N%10會給你最後一位數字。 N/10(整數除法)將刪除最後一位數字。

你可以繼續,直到你沒有更多的數字。

0

使用模操作:

a % 10 to get the last digit 
a % 100 to get the last two digits. (a % 100) - (a % 10) to get the second last number 
etc. 
1

一旦通過億分而採取的整數值,可以再回來億乘以這個整數,並從ISBN減去它。這有效地取消了最左邊的數字。所以現在,重複10,000,000次 - 依此類推。

例5個位數:

Start: 74325 

74325/10000 and int = 7 (there's your first digit) 
7 * 10000 = 70000 
74325 - 70000 = 4325 

4325/1000 and int = 4 (there's your next digit) 
4 * 1000 = 4000 
4325 - 4000 = 325 

等等!