南沙C++信奥赛陈老师解一本通题 1942:【08NOIP普及组】ISBN号码

news/2024/9/29 18:44:51

 【题目描述】

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

识别码的计算方法如下:

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

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

【输入】

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

【输出】

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

【输入样例】

0-670-82162-4

【输出样例】

Right

【提示】

【输入输出洋例2】

输入:

0-670-82162-0

输出:

0-670-82162-4

 

#include <iostream>
using namespace std;
int a[11];
int main()
{string s;cin>>s;int sum=0,cnt=1;for(int i=0;i<=12;i++){if(s[i]=='-')continue;a[cnt++]=s[i]-'0';}for(int i=1;i<=9;i++)sum+=a[i]*i;string isbn=s.substr(0,12)+ ( sum%11<=9 ? to_string(sum%11): "X" );cout<<(s==isbn ? "Right":isbn );return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66267.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

9.29每日总结

今天做完了“四则运算”和“生成验证码”,其中“生成验证码”这道题暑假的时候跟着网课做过初级版的,今天又加以改进了不少,为此把黑马的字符串章节差不多看完了,收获比较大的除了StringBuilder和StringJoiner之外,就是“验证码”这道题中用到的字符串转为字符数组(toCha…

《密码系统设计》第四周

第四周预习报告 学习内容Head First C 嗨翻 C 语言 第5章 《Windows C/C++加密解密实战》第 6,8,13,14 章 重点第14 章,第 6 章了解 ,第 8,13 参考 课程 mindmap 报告内容参考第一周AI 对学习内容的总结(1分) 要求让AI阅读学习内容并进行总结总结 1. Head First C 嗨翻 …

自然资源领域的组件报批:守护绿水青山的智慧钥匙

在追求绿色发展的今天,自然资源的合理利用与有效保护成为了社会关注的焦点。组件报批作为自然资源开发与保护的前置门槛,如同一把精密的钥匙,解锁着可持续发展的大门。本文将带您走进自然资源领域的组件报批世界,探析其背后的逻辑、重要性以及如何在实践中更好地守护我们的…

GIS在构建虚拟世界中的新机遇

地理信息系统(GIS)技术在构建虚拟世界中扮演着越来越重要的角色。随着数字孪生、虚拟现实(VR)、增强现实(AR)和混合现实(MR)等技术的发展,GIS为虚拟世界提供了地理信息和数据支持,增强了虚拟环境的真实感和交互性。1. 虚拟空间构建GIS技术可以获取地球表面的高程、坡…

C++的并发编程历史

多线程环境 并非所有的语言都提供了多线程的环境。即便是C++语言,直到C++11标准之前,也是没有多线程支持的。 在这种情况下,Linux/Unix平台下的开发者通常会使用POSIX Threads,Windows上的开发者也会有相应的接口。 但很明显,这些API都只针对特定的操作系统平台,可移植性…

课后练习-登录-2024/9/29

该登录界面是用JOptionPane弹窗接收用户名和密码,之后在数据库中搜索是否存在,最后显示登录成功与否实现 loginTest.java package JDBC_Test;import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSour…

数据库连接池实现

本文详细介绍了基于 C++11 的数据库连接池的实现思路,并且有源码提供欢迎访问的另一个博客: https://xingzhu.top/ 源码链接: https://github.com/xingzhuz/MysqlLinkPool前置知识: 相关的环境配置: https://xingzhu.top/archives/shu-ju-ku-lian-jie-chi-huan-jing-pei-zhi M…