這實際上並不是家庭作業,我只是在下週開始計算機科學之前瀏覽離散數學書中的一些問題。計算ISBN的校驗位
無論如何,其中一個問題要求我編寫一個程序來執行這個算法(它解釋)。我堅持的部分是如何獲取9位數字並將其「拆分」爲單個整數,因此可以對每個數字執行計算。
我想將數字除以100,000,000,然後取這個整數值來得到第一個數字,但我不確定如何得到其他數字。
如果這是在PHP或東西,我可以只使用爆炸(),但我想在這裏,不是問題的關鍵:P
這實際上並不是家庭作業,我只是在下週開始計算機科學之前瀏覽離散數學書中的一些問題。計算ISBN的校驗位
無論如何,其中一個問題要求我編寫一個程序來執行這個算法(它解釋)。我堅持的部分是如何獲取9位數字並將其「拆分」爲單個整數,因此可以對每個數字執行計算。
我想將數字除以100,000,000,然後取這個整數值來得到第一個數字,但我不確定如何得到其他數字。
如果這是在PHP或東西,我可以只使用爆炸(),但我想在這裏,不是問題的關鍵:P
可以使用國防部(%),除(/)運算符。
N%10會給你最後一位數字。 N/10(整數除法)將刪除最後一位數字。
你可以繼續,直到你沒有更多的數字。
使用模操作:
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.
一旦通過億分而採取的整數值,可以再回來億乘以這個整數,並從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
等等!