洛谷 P1055 ISBN 号码

2023-10-31

题目描述

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

识别码的计算方法如下:

首位数字乘以11加上次位数字乘以22……以此类推,用所得的结果\bmod 11mod11,所得的余数即为识别码,如果余数为1010,则识别码为大写字母XX。例如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 \bmod 11158mod11的结果44作为识别码。

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

输入格式

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

输出格式

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

输入输出样例

输入 #1

0-670-82162-4

输出 #1

Right

输入 #2

0-670-82162-0

输出 #2

0-670-82162-4

借鉴了一些大佬的方法进行学习。

规定两个变量:第一个是存储自己输入的数组,第二个存储的是检验的数组,当检验到所求的余数等于mod数组里面的时候,就可以输出right 

因为在中间有多个'-'符合不参与运算,所以运用到continue语句,来跳出for循环的输入以及运算。

#include <stdio.h>

int main()
{
	char a[14],mod[12]="0123456789X";
	//第一个是存储自己输入的数组,第二个存储的是检验的数组
	//当检验到所求的余数等于mod数组里面的时候,就可以输出right 
	int i,j=1,sum;
	scanf("%c",&a);
	//总共要自己输入12个字符。 
	for(i=0;i<12;i++)
	{
		if(a[i]=='-')continue; 
		sum=sum+(a[i]-48)*j++; 
	}
	if(mod[sum%11]==a[12]) printf("Right\n");//s为计算后的总和
	//a[12]为识别码,如果识别码输入正确,则结果正确
    else 
	{
		a[12]=mod[sum%11]; //如果不对,输出X
		printf("%c",a);
	}
	
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

洛谷 P1055 ISBN 号码 的相关文章

随机推荐

  • YOLOv3手部检测

    YOLOv3手部检测 开源项目地址 https codechina csdn net EricLee yolo v3 该项目包含 YOLOv3和YOLOv3 tiny的手部检测 脸部检测 人检测 安全帽检测 交通工具检测 本文测试了手部检测
  • python之重复值(duplicated)

    Duplicated函数功能 查找并显示数据表中的重复值 这里需要注意的是 当两条记录中所有的数据都相等时duplicated函数才会判断为重复值 duplicated支持从前向后 first 和从后向前 last 两种重复值查找模式 默认
  • 磁控可变电感制作

    主电感的制作 绕制电感 主电感的绕组直接绕在骨架上 一共19匝 根据流过的电流大小选择所用利兹线的股数 仿真结果显示最大电流为3A左右 利兹线若需要耐压高可以买这种包了膜的 但是厚一点 不利于绕制 直接用普通不包膜的即可 然后将两个线接到接
  • C语言-蓝桥杯-基础练习 分解质因数

    问题描述 求出区间 a b 中所有整数的质因数分解 输入格式 输入两个整数a b 输出格式 每行输出一个数的分解 形如k a1a2a3 a1 lt a2 lt a3 k也是从小到大的 具体可看样例 样例输入 3 10 样例输出 3 3 4
  • Python Pandas数据统计函数以及数据排序

    有如下一张表s3 1 汇总类统计 生成各项数字列的汇总数据 s3 describe s3 aqi max s3 aqi mi
  • Android优化总结

    目录介绍 1 OOM和崩溃优化 1 1 OOM优化 1 2 ANR优化 1 3 Crash优化 2 内存泄漏优化 2 0 动画资源未释放 2 1 错误使用单利 2 2 错误使用静态变量 2 3 handler内存泄漏 2 4 线程造成内存泄
  • Windows配置万德(Wind)量化接口

    原理 wind会在python的第三方库中安装一个属于wind的库 文章目录 步骤1 确定python的路径 步骤2 配置wind的接口 步骤3 检查配置 步骤4 使用python提取任意的wind数据 步骤1 确定python的路径 如果
  • css新特性 - contain

    属性介绍 隔离样式 布局和渲染 开发人员可以使用这个 contain 属性来限制指定的DOM元素和它的子元素同页面上其它内容的联系 我们可以把它看做一个iframe 跟iframe很相似 它能建立起一个边界 产生一个新的根布局 保证了它和它
  • JSon和Ajax

    JSON 什么是 JSON JSON JavaScript Object Notation 是轻量级的文本数据交换格式 主要用来web服务前后端传输数据 JSON 独立于语言 JSON 使用 Javascript语法来描述数据对象 但是 J
  • 百度网盘 php解析,【搬运】百度云盘下载地址解析工具 有点不完美!

    UserScript url home php mod space uid 170990 name url 百度网盘助手 author 有一份田 description 显示百度网盘文件的直接链接 突破大文件需要使用电脑管家的限制 url
  • [盘点]国内外语音识别行业现状

    原标题 盘点 国内外语音识别行业现状 OFweek机器人网讯 随着机器学习和人工智能的热闹 国内语音行业也可谓是百花齐放 尤其是最近几年 不仅涌现了很多国内外的小公司 而且巨头们也开始加速语音识别行业的布局 本文就详细盘点一番国内外的大型公
  • VS Code 代码中乱码问题

    打开vscode文件 一般看代码的时候 会有一些中文注释是乱码的问题 解决办法 第一步 打开文件 第二步 打开首选项 选择设置 第三步 搜索files autoGuessEncoding 选择 第四步重新打开代码文件 字符乱码问题解决
  • HTTP协议之基本认证

    http协议是无状态的 浏览器和web服务器之间可以通过cookie来身份识别 桌面应用程序 比如新浪桌面客户端 skydrive客户端 跟Web服务器之间是如何身份识别呢 阅读目录 什么是HTTP基本认证 HTTP基本认证的过程 HTTP
  • visual studio 2017 添加MSDN及使用(C零基础课程-22-标准库函数在Windows及Linux下的查询与使用)

    原文地址 https blog csdn net qq 33369475 article details 74931006 学习视频地址 标准库函数在Windows及Linux下的查询与使用 视频学习笔记 学习笔记 1 启动VS2017的安
  • PyCharm中安装requests库

    在利用python进行进行数据爬虫的时候 我们通常会使用requests第三方库 这里介绍下在集成开发环境Pycharm中安装requests库的方法 一 打开 Pycharm 点击 File 文件 选择 Settings 二 在 Sett
  • REUSE_ALV_FIELDCATALOG_MERGE 自动创建格式(FIELDCAT)

    1 alv需要显示的时候字段太多 或者有现成的结果表的时候可以用函数创建字段的文字描述 fieldcat样式 2 先用函数把结构或者表转换 I STRUCTURE NAME 可以是表也可以结构 如果是定义的结构需要用 like 参考 DAT
  • 火狐浏览器配置webDriver

    写在前面 最近学软件测试 需要用python做自动化测试 但是这个配置却不太好弄 网上搜集的方法要么年代久远 要么只教一半 确实很搞心态 所以在此记录下配置连接火狐的过程 1 下载火狐webDriver 1 1装前准备 在下载火狐浏览器的驱
  • obsidian安装mind插件

    Release v0 2 1 MarkMindCkm obsidian enhancing mindmap GitHub 在底部下载三个文件 粘贴至源文件 obsidian中的plugins文件夹中 可自建 重启软件 在设置 第三方插件中关
  • 服务器IO测试(Iozone使用)

    1 Iozone工具介绍 测试硬盘读写性能 Mb s 包括随机读写和顺序读写速度 Iozone设置块大小16M 文件大小为物理内存2倍 1倍 0 5倍三组数据 2 测试步骤 2 1 下载 wget http www iozone org s
  • 洛谷 P1055 ISBN 号码

    题目描述 每一本正式出版的图书都有一个ISBN号码与之对应 ISBN码包括99位数字 11位识别码和33位分隔符 其规定格式如x xxx xxxxx x 其中符号 就是分隔符 键盘上的减号 最后一位是识别码 例如0 670 82162 4就