代码编织梦想

题目

链接

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;
} 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42178241/article/details/127168825

noip2008 isbn号码 (模拟)-爱代码爱编程

A1163. ISBN号码 时间限制: 1.0s   内存限制: 256.0MB   总提交次数: 691   AC次数: 268   平均分: 62.95 将本题分享到:             查看未格式化的试题 

noip2008:isbn号码-爱代码爱编程

#include<stdio.h> #include<stdlib.h> #include<string.h> char a[20]; int main(){     int i,j,k,m,n;     gets(a);     m=(a[0]-48)+(a[2]-48)*2+(a[3]-48)*3+(a[4]-48)

joyoi 1006 noip 2008 isbn号码_王20133的博客-爱代码爱编程

题目限制 时间限制内存限制评测方式题目来源1000ms131072KiB标准比较器Local 题目背景 NOIP2008年普及组第一题 题目描述    每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别

noip 2008 isbn号码_初雪与你的博客-爱代码爱编程

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

noip 普及组-2000-isbn号码_小韦同学的博客-爱代码爱编程

小韦老师@NOIP 普及组-2000-ISBN号码 题目: 描述 每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中

p1055 isbn号码(noip2008普及组第一题)-c++编程解析-字符串-爱代码爱编程

解题思路: 本题描述清晰,我们只需要按照题目的说明,去操作即可。利用一个数组去提取ISBN中的9位数字和1位识别码,根据识别码的计算方法,求出识别码,然后将求出的识别码和输入的识别码进行判断,如果相等,就输出Right,

【08NOIP普及组】ISBN号码-爱代码爱编程

http://ybt.ssoier.cn:8088/problem_show.php?pid=1942 【题目描述】 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标

P1055 [NOIP2008 普及组] ISBN 号码 题解-爱代码爱编程

C++ 实现// ISBN: International Standard Book Number // -*- coding: utf-8 -*- // @ Date : 2020/5/20 13:14 // @ Author : RichardLau_Cx // @ file : Richard.cpp // @ IDE : D

NOIP 2008 ISBN 号码-爱代码爱编程

  说实话呢,这道题我也没太弄明白那些数据的卡点是个什么玩意,一会是80PAC,一会是AC 我是用字符串输入处理的,还算简便吧,具体的解释在代码中注释呈现吧 AC代码呈上 #include<bits/stdc++.h> using namespace std; int lvl=0; string s; int a[11]; int

P1055 [NOIP2008 普及组] ISBN 号码(python3实现)-爱代码爱编程

https://www.luogu.com.cn/problem/P1055 """ P1055 [NOIP2008 普及组] ISBN 号码 https://www.luogu.com.cn/problem/P1055 """ mod="0123456789X" a=list(input()) #print(a) t=0 j=1 for i

C语言每日一题——[NOIP2008]ISBN号码(牛客网第76题)-爱代码爱编程

目录 描述 输入描述: 输出描述: 示例1 示例2 图解  详解 代码 小优化 描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就

NOIP 2008 普及组 ISBN号码-爱代码爱编程

#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; int num = 0; for (int i = 0, j = 1; i < 11; i ++) { if (s[i] != '-') { nu

1942:【08noip普及组】isbn号码_熬夜写代码的小编的博客-爱代码爱编程

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

ch07 复合结构_复合结构体-爱代码爱编程

Overview C语言中复合类型 (composite type) 是指用户自定义类型,通常由多种元素组成的类型,其元素被紧密存储在内存中。C语言常见的复合类型有: 数组字符串结构体联合类型 结构体 [1] 结构体

玩转c语言指针~-爱代码爱编程

距离我学习C语言也有四年之久了,我不禁想到,自己是否真的了解和会完C语言指针,以下是我对C语言指针的理解(如有纰漏,请指出 我做了codewars上的 C Puzzle: Pointer Monster,其中运用

p1055 [noip2008 普及组] isbn 号码-爱代码爱编程

题目链接 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括999位数字、111位识别码和333位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别

【入门2】分支结构 p1055 [noip2008 普及组] isbn 号码_isbn 问题背景background noip2008年普及组第一题 描述description -爱代码爱编程

[NOIP2008 普及组] ISBN 号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(