网页设计网站思路,重庆公共资源交易中心网,wordpress整站搬家首页空白问题,网站制作资源题目#xff1a;每—本正式出版的图书都有一个ISBN号码与之对应#xff0c;ISBN码包括9位数字、1位识别码和3位分隔符#xff0c;其规定格式如“x-xXX-XXXxx-x”#xff0c;其中符号-是分隔符(键盘上的减号)#xff0c;最后—位是识别码#xff0c;例如O-670…题目每—本正式出版的图书都有一个ISBN号码与之对应ISBN码包括9位数字、1位识别码和3位分隔符其规定格式如“x-xXX-XXXxx-x”其中符号-是分隔符(键盘上的减号)最后—位是识别码例如O-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言例如О代表英语;第—个分隔符“-之后的三位数字代表出版社例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后—位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2......以此类推用所得的结果mod 11所得的余数即为识别码如果余数为10则识别码为大写字母×。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字从左至右分别乘以12...9再求和即O×16×2......2×9158然后取158 mod 11的结果4作为识别码。你的任务是编写程序判断输入的ISBN号码中识别码是否正确如果正确则仅输出Right;如果错误则输出你认为是正确的ISBN号码。 实现思路 1.首先通过Scanner类从控制台读取用户输入的ISBN号。 2.去除出版编号中的所有“_”。 3.初始化一个累加器sum为0。 4.使用for循环遍历ISBN号中的每个数字字符除了最后一个字符。将每个数字字符转换为整数乘以一个递增的k从1开始然后将结果加到sum中。 5.根据sum的值计算校验码。如果sum除以11的余数是10校验码是X否则校验码是sum除以11的余数。 6.获取原始的校验码即ISBN号中的最后一个字符。 7.如果计算出的校验码与原始校验码相同则输出Right表示ISBN号有效。 8.如果不同则输出修正后的ISBN号原始字符串除了最后一个字符之外的所有字符加上计算出的校验码。 package com.ztt.Demo01;import java.util.Scanner;
public class demo02 {public static void main(String[] args) {try(Scanner in new Scanner(System.in)){String isbnin.nextLine();//去除出版编号中的所有“_”String isbnNumberStr isbn.replace(-, );//遍历除数校验码最后一位以外的所有字符int sum0;for(int i0,k1;iisbnNumberStr.length()-1;i,k) {int nInteger.parseInt(String.valueOf(isbnNumberStr.charAt(i)));//将字符转换为字符串获取字符串isbnNumberStr中的第i个字符将字符串转换为整数。sum n * k;}System.out.println(sum);//根据累加值计算校验码String validateCode String.valueOf(sum % 1110 ? X :sum % 11);//获取原始的校验码String lastString.valueOf(isbnNumberStr.charAt(isbnNumberStr.length()-1));if(validateCode.equals(last)) {System.out.println(Right);}else {System.out.println(isbn.substring(0,isbn.length()-1) validateCode);}}}}运行结果
0-670-82162-4
158
Right