校驗(yàn)碼的計(jì)算方法?1.假設(shè)某ISBN號(hào)碼前11位是:7-309-04547; ? ??2.計(jì)算加權(quán)和S:S=7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2 = 226; ? ??3.計(jì)算S÷11的余數(shù)M:M = 226 mod 11 = 6; ? ??4.計(jì)算11-M的差N:N = 11 ? 6 = 5 ? ??如果N=10,校驗(yàn)碼是字母“X”; ? ???如果N=11,校驗(yàn)碼是數(shù)字“0”; ? ???如果N為其他數(shù)字,校驗(yàn)碼是數(shù)字N。 ? ?所以,本書的校驗(yàn)碼是5。13位ISBN的最后一位校驗(yàn)位的加權(quán)算法與10位ISBN的算法不同。具體算法是:用1分別乘ISBN的前12位中的奇數(shù)位,用3乘以偶數(shù)位,成績(jī)之和以10為模,用10減去此模,即可得到校驗(yàn)位的值,其值范圍應(yīng)該為0-91.假設(shè)某13位ISBN號(hào)碼前15位(包含‘-’符號(hào))是:987-7-309-04547; ? ??2.位置為123-4-567-89(10)(11)(12) ? ??3.計(jì)算加權(quán)和S:S=9×1+8×3+7×1+7×3+3×1+0×3+9×1+0×3+4×1+5×3+4×1+7×3 = 117; ? ??4.計(jì)算S÷10的余數(shù)M:M = 117 mod 10 = 7; ? ??5.計(jì)算10-M的差N:N = 10 -7 = 3 ? ? (如果10-M的值為10則校驗(yàn)碼取0)6.所以,本書的13位ISBN的校驗(yàn)碼是3。輸入一個(gè)13位ISBN代碼,驗(yàn)證其代碼的正確性。n如果正確,則輸出“YES”,否則輸出錯(cuò)誤信息“NO”。程序必須采用類的方法完成,程序中必須含有和使用三個(gè)基本類成員函數(shù):input()輸入數(shù)據(jù),computer()計(jì)算結(jié)果,show()顯示結(jié)果,函數(shù)的返回值和參數(shù)根據(jù)需要自己可以確定需要與否,如果不用類的方法或沒有使用上面的函數(shù),該題不給分。輸入每行一個(gè)測(cè)試數(shù)據(jù),表示一個(gè)13位ISBN的號(hào)碼(包含‘-’符號(hào))。輸出根據(jù)驗(yàn)證規(guī)則,計(jì)算其正確性,如果正確,則輸出“YES”,否則輸出錯(cuò)誤信息“NO”。樣例輸入978-7-302-08599-7樣例輸出YES
- 1 回答
- 0 關(guān)注
- 1097 瀏覽
添加回答
舉報(bào)
0/150
提交
取消