5.47(商业:检测ISBN-13)ISBN-13时标识书籍的新标准。它使用13位数字d1d2d3~d12d13,d13是校验和。读入前12位输出全部位数

  • 题目
    • 题目概述
    • 运行示例
    • 破题
  • 代码

题目

题目概述

5.47(商业:检测ISBN-13)ISBN-13时标识书籍的新标准。它使用13位数字d1d2d3d4d5d6d7d8d9d10d11d12d13,最后一位数字d13是校验和,是使用下面的公式从其他数字中计算出来的:
10 - (d1 + 3 * d2 + d3 + 3 * d4 + d5 + 3 * d6 + d7 + 3 * d8 + d9 + 3 * d10 + d11 + 3 * d12) % 12
如果校验和为10,则替换为0。程序应该将输入作为一个字符串读入。

运行示例

Enter the first 12 digits of an ISBN-13 as a string: 978013213080
The ISBN-13 number is 9780132130806
Enter the first 12 digits of an ISBN-13 as a string: 978013213079
The ISBN-13 number is 9780132130790
Enter the first 12 digits of an ISBN-13 as a string: 97801320
97801320 is an invalid input

破题

  1. 用string类型读入前12位数字
  2. 转化为int类型
  3. 取出每位数字
  4. 计算d13,如果是10则替换为0
  5. 输出结果

代码

import java.util.Scanner;public class Test5_47 {public static void main(String[] args) {// 1. 用string类型读入前12位数字Scanner input = new Scanner(System.in);System.out.print("Enter the first 12 digits of an ISBN-13 as a string: ");String str = input.nextLine();// 判断长度是否符合要求int length = str.length();if (length < 9 ) {System.out.println(str + " is an invalid input");System.exit(1);}// 2. 转化为int类型long user_input = Long.parseLong(str);// 3. 取出每位数字int temp1 = 0, temp2 = 0, result = 0;for ( long i = 10000000000L ; i >= 1 ; i /= 100){temp1 = (int) (user_input / (i * 10));temp2 = (int) (user_input % (i * 10) / i);result += temp1 + 3 * temp2;user_input %= i;}// 4. 计算d13,如果是10则替换为0result = 10 - result % 10;if (result == 10)result = 0;// 5. 输出结果System.out.print("The ISBN-13 number is " + str + result);}
}

Java黑皮书课后题第5章:*5.47(商业:检测ISBN-13)ISBN-13是标识书籍的新标准。它使用13位数字d1d2d3~d12d13,d13是校验和。如果校验和为10,则替换为0。求所有数字相关推荐

  1. Java黑皮书课后题第5章:*5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储。编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式,下面是运行示例

    5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储.编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式 题目 题目概述 运行示例 资料与破题 原码反码 ...

  2. Java黑皮书课后题第1章:1.7(求π的近似值)编写程序,显示4*(1-1/3+1/5-1/7+1/9-1/11【+1/13】)

    Java黑皮书课后题第1章:1.7(求π的近似值) 题目描述 代码 代码块 评析 修改日志 题目描述 可以使用以下公式计算π: [手动空格]π=4*(1-1/3+1/5-1/7+1/9-1/11+-) ...

  3. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  4. Java黑皮书课后题第1章:1.13(代数:求解2*2线性方程组)编写程序,求解以下方程组并显示x和y的值 3.4x+50.2y=44.5 2.1x+0.55y=5.9

    Java黑皮书课后题第1章:(代数:求解2*2线性方程组) 题目 题目描述 破题 代码块 方法评析 赘述 修改日志 题目 题目描述 求x和y值: 3.4x+50.2y=44.5 2.1x+0.55y= ...

  5. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天

    Java黑皮书课后题第1章:*1.11(人口估算) 题目 题目描述 破题 代码块 方法评析 为什么print函数内的表达式不能分开 修改日志 题目 题目描述 *1.11(人口估算)编写一个程序,显示未 ...

  6. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  9. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  10. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间

    Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含--.编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间 题目 破题 代码 Test6 ...

最新文章

  1. (译)如何使用cocos2d来制作一个打地鼠的游戏:第一部分
  2. ios/android代码生成FLASH可用的actionscript代码(*.ane)
  3. n个人选k个c语言_leetcode之第k个缺失的正整数
  4. ffplay的快捷键以及选项
  5. java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc
  6. 薄板冲压成型过程的计算机仿真与应用,薄板冲压成型过程的计算机仿真与应用_钟志华.pdf...
  7. 人口普查数据有疑问???
  8. 【将多个Excel合并成一个Excel】
  9. 历年美赛赛题和特等奖论文集合,文中直接获取!!!
  10. Kaldi 使用,egs下通用样例及功能小结
  11. 大华sdk(java)上传人脸图片到人脸库,订阅人脸识别对比
  12. 湖南大学工训创新大作业——改进电子音乐
  13. BeyondCompare4下载安装使用
  14. 火热售卖中 纪念币开始发行
  15. jmeter循环和计数器
  16. ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?(转)
  17. Nowa Flutter开发教程之 06 什么是Components以及为什么使用 (无代码开发)
  18. 双一流高校全球通邮经验:Coremail安全海外中继提升科研效率
  19. Cs231n笔记--图像分割和目标检测
  20. 经过一段时间的努力和研究,开心农场外挂助手终于小有成就(欢迎大家与我交流)

热门文章

  1. P1582 倒水(二进制)
  2. 如何攻破容器持久化存储挑战?
  3. ITNEXT :“这个项目可能会改变我们使用 Kubernetes 的方式”
  4. 5G专网为“江南皮革厂”带来了什么?
  5. 航空企业如何用「AI利器」提升乘客体验
  6. 以美术资源生产为例,谈游戏研发中台PM实战
  7. 你可能没看懂Supercell的新游戏
  8. 游戏编程技巧分析:策划变心太快?也许可以使用组合
  9. 小游戏发布云测试工具,中小团队的“小又快”可以这么来
  10. RTX3090 Super曝光:完整GA102核心加持、性能提升5%