Java ISBN检查器/计算器,如何解决?

时间:2013-02-25 00:50:05

标签: java isbn

我正在完成我的家庭作业,并为这个特殊问题坚持了5个小时。

最后一位数字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号为0000123455”。

我用于循环,切换和一切,但据我所知,我无法解决它。 我可以计算d10,但问题是...... 1)我不明白如何计算013601267因为它不是0 1 3 6 ... 因为我使用扫描仪对象,我不知道如何继续。 2)我无法弄清楚如何添加前导零。

如果某人有这个问题的答案,或有人可以告诉我, 请帮我!!

1 个答案:

答案 0 :(得分:2)

首先,将输入解析为String

然后,遍历String并将每个字符(以int形式,进行必要的计算)添加到int类型的和变量中。 (乘以每个char + 1的索引。)

最后,做模数。然后,如果结果等于10,则将X附加到ISBN字符串;否则,附加模数运算的结果。

修改:添加零,计算ISBN String形式的字符数,然后添加该数量的零 - 9到ISBN的开头

希望这会有所帮助!!