NOIP200801ISBN号码

news/2024/7/3 6:21:46

NOIP200801ISBN号码

  • 题目
    • 链接
    • 字面描述
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例 #1
        • 样例输入 #1
        • 样例输出 #1
      • 样例 #2
        • 样例输入 #2
        • 样例输出 #2
      • 提示
  • 代码实现

题目

链接

https://www.luogu.com.cn/problem/P1055

字面描述

题目描述

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

识别码的计算方法如下:

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

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

0-670-82162-4

样例输出 #1

Right

样例 #2

样例输入 #2

0-670-82162-0

样例输出 #2

0-670-82162-4

提示

2008 普及组第一题

代码实现

#include<bits/stdc++.h>
using namespace std;

const int maxn=20;
string s;
int k,cnt;
int a[20];
int main(){
	//freopen("A.in","r",stdin);
	//freopen("A.out","w",stdout);
	cin>>s;
	int len=s.length();
	for(int i=0;i<len;i++){
		if(s[i]=='-')continue;
		if(s[i]=='X'){
			a[++k]=10;
			continue;
		}
		a[++k]=s[i]-'0';
	}
	for(int i=1;i<=9;i++)cnt+=i*a[i];
	cnt%=11;
	if(cnt==a[10]){
		cout<<"Right"<<endl;
		return 0;
	}
	else {
		cout<<a[1]<<"-"<<a[2]<<a[3]<<a[4]<<"-"<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<"-";
		if(cnt==10)cout<<"X"<<endl;//特判X
		else cout<<cnt<<endl;
	}
	return 0;
} 

http://lihuaxi.xjx100.cn/news/58086.html

相关文章

十一、内容补充——SpringCloud + Alibaba 全家桶详解(目前公司最新技术)

因为csdn字数有限&#xff0c;只能另外写一篇把剩下的内容补充完整了。。。。。。 十六、SpringCloud Alibaba Nacos服务注册和配置中心 1. Nacos简介 ⑴ Nacos名字的由来 前四个字母分别为Naming和Configuration的前两个字母&#xff0c;最后的s为Service。 ⑵ Nacos是什…

【思科模拟器基本使用】

切换模式 用户模式&#xff1a;网络设备开机时即用户模式 特权模式&#xff1a;在网络模式下输入enable可切换到特权模式 全局配置模式&#xff1a;在特权模式下输入configure terminal可进入全局配置模式 线路配置模式&#xff1a;在全局配置模式下输入line console 0(配置编号…

opencv从入门到精通 哦吼 07

进阶篇 本篇的内容较多&#xff0c;包含了 6 章内容&#xff0c;分别是模板匹配、滤波器、腐蚀与膨胀、图形检测、视频处理以及人脸检测和人脸识别。这 6 章内容虽然相对独立&#xff0c;但是在实际开发的过程中&#xff0c;是相辅相成、相得益彰的 目录 模板匹配 模板匹配方…

The Planets: Earth-Vulnhub靶场

下载靶机&#xff1a;下载地址 下载后直接在vm打开&#xff0c;把靶机和kali网络配置成NAT模式。 开启靶机&#xff0c;查看MAC地址。 打开kali使用命令arp-scan -l查看靶机ip&#xff1a;192.168.195.132 nmap -A 192.168.195.132查看开放的端口&#xff0c;能看到打开了80…

淘宝怎么进行补单?流程是什么?

淘宝怎么进行补单?流程是什么? 对于淘宝商家来说&#xff0c;需要好好的打好店铺的基础&#xff0c;为了能够做得更好&#xff0c;很多的淘宝商家们都会去补单。当然淘宝店铺补单都是有一定的技巧的&#xff0c;那么淘宝商家们如何去进行补单呢?下面进行介绍。 淘宝怎么进…

Nginx反向代理和负载均衡实战

004_Nginx实现反向代理负载均衡_哔哩哔哩_bilibili 准备两台服务器&#xff0c;每台安装tomcat。 准备一台服务器&#xff0c;安装nginx,未配置时&#xff0c;访问nginx&#xff0c;打开了index.html页面 配置upstream name{}这里name随便起&#xff0c;为集群的名字。 在lo…

Lesson 15 Good news 佳音

1.原文 2. 参考译文 3. New words and expressions Secretary/secret n. 秘密 ★nervous adj. 精神紧张的 ① adj. 神经质的&#xff0c;神经紧张的 She is a nervous woman. Do you see that nervous smile on her face?② 紧张的&#xff0c;担心的&#xff0c;情绪不安的…

假如面试官要你手写一个promise

promise 在开发中&#xff0c;经常需要用到promise&#xff0c;promise具有很多特性&#xff0c;这一次将对promise特性进行总结&#xff0c;并从零写一个promise。 步骤一 Promise特点 1&#xff0c;创建时需要传递一个函数&#xff0c;否则会报错2&#xff0c;会给传入的函…