【问题标题】:Java ISBN checker/calculator, how to solve?Java ISBN 检查器/计算器,如何解决?
【发布时间】:2013-02-25 00:50:05
【问题描述】:

我正在做我的作业,并为这个特定的问题坚持了 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”。

我使用了 for 循环、开关和所有东西,但据我所知,我无法解决它。 我可以计算 d10 但问题是.. 1)我不明白如何计算 013601267 因为它不是 0 1 3 6 ... 因为我正在使用扫描仪对象,所以我不知道如何进行。 2) 我不知道如何添加前导零。

如果有人对此问题有答案,或者有人可以建议我, 请帮帮我!!

【问题讨论】:

  • 你能告诉你到目前为止你做了什么吗?你的代码?

标签: java isbn


【解决方案1】:

首先,将输入解析为String

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

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

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多