【对图书的ISBN 号码进行识别处理】

2024-04-01 03:20

本文主要是介绍【对图书的ISBN 号码进行识别处理】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 99 位数字、11 位识别码和 33 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 00 代表英语;第一个分隔符 - 之后的三位数字代表出版社,例如 670670 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:

首位数字乘以 11 加上次位数字乘以 22 ……以此类推,用所得的结果  mod 11mod11,所得的余数即为识别码,如果余数为 1010,则识别码为大写字母 �X。例如 ISBN 号码 0-670-82162-4 中的识别码 44 是这样得到的:对 067082162 这 99 个数字,从左至右,分别乘以 1,2,…,91,2,…,9 再求和,即 0×1+6×2+……+2×9=1580×1+6×2+……+2×9=158,然后取 158 mod 11158mod11 的结果 44 作为识别码。

你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 Right;如果错误,则输出你认为是正确的 ISBN 号码。

Input

一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。

Output

一行,假如输入的 ISBN 号码的识别码正确,那么输出 Right,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符 -)。

Sample 1

InputcopyOutputcopy
0-670-82162-4
Right

Sample 2

InputcopyOutputcopy
0-670-82162-0
0-670-82162-4

思路:

AC代码一(用char型字符串):

#include<bits/stdc++.h>
using namespace std;
int main()
{char st[20];int sum=0,j=1;scanf("%s",st);int l=strlen(st);   //定义字符串的长度一定要在输入字符串之后for(int i=0;i<l-1;i++){if(st[i]!='-'){sum+=(st[i]-'0')*j;  //要先将字符转化为数字再带入计算j++;}else continue;}int t=sum%11;if(t==st[l-1]-'0'||t==10&&st[l-1]=='X')printf("Right");else{if(t==10)st[l-1]='X';else  st[l-1]=t+'0';  //将数字转化为字符到字符串中输出printf("%s",st);}return 0;
}

AC代码二(用string类型字符串):

#include<bits/stdc++.h>
using namespace std;
int main()
{string st;int sum=0,j=1;cin>>st;for(int i=0;i<st.size()-1;i++){if(st[i]!='-'){sum+=(st[i]-'0')*j;j++;}else continue;}int t=sum%11;if(t==st.back()-'0'||t==10&&st.back()=='X')printf("Right");else{if(t==10)st.back()='X';else  st.back()=t+'0';cout<<st<<endl;}return 0;
}

这篇关于【对图书的ISBN 号码进行识别处理】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866085

相关文章

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口