0

我正在做我的功课,并为这个特定的问题坚持了 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)而且我不知道如何添加前导零。

如果有人有这个问题的答案,或者有人可以给我建议,请帮助我!

4

1 回答 1

2

首先,将输入解析为String.

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

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

编辑:添加零,以 ISBN 的String形式计算字符数,然后在 ISBN 的开头添加该数量的零 - 9。

希望这可以帮助!!

于 2013-02-25T00:57:07.737 回答