P1055 ISBN号码

1人阅读 评论(0) 收藏 举报
分类:
题目描述
每一本正式出版的图书都有一个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是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,...,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。


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


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


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


输入输出样例
输入样例#1: 
0-670-82162-4
输出样例#1: 
Right
输入样例#2: 
0-670-82162-0
输出样例#2: 

0-670-82162-4

#include<stdio.h>
char arr[13];
int ans[10];
int main(){
	int index=0,sum=0;
	gets(arr);
	for(int i=0;i<=12;i++){
		if(arr[i]!='-'){
			index++;
			ans[index] = int(arr[i]-'0');
		}
	}
	for(int i=1;i<10;i++){
		sum+=ans[i]*i;
	}
	if(sum%11 == int(arr[12]-'0') ||(sum%11==10&&arr[12]=='X')){
		printf("Right\n");
	}else{
		if(sum%11==10){
			arr[12]='X';
			printf("%s\n",arr);
		}else{
			arr[12]=char(sum%11+'0');
			printf("%s\n",arr);
		}
	}
	return 0;
}

查看评论

人工智能工程师直通车第一期

为满足市场需求,培养更多人工智能人才,CSDN学院特别邀请到有十余年教学经验的中科院教授卿来云老师及有丰富工业级实战经验的智亮老师,为大家带来本次课程。 通往人工智能工程师的直通车,已经准备出发了!这波人工智能的热潮,你真的要错过吗?
  • 2017年10月24日 15:37

<NOIP> 16 . P1055 ISBN号码

题解:这是洛谷的第16道题目,从这道题开始就是考察字符串的使用了。 注意 1 . 这道题目没有什么难度,根据题意把字符串的字串提取出来,再进行转换成int变量,进行计算即可。 2 . 如果余数为...
  • u010202481
  • u010202481
  • 2017-06-30 15:25:20
  • 254

ISBN号码(p1055)

解法一: #include using namespace std;                             思路:把最后一个字符单独摘出来研究 int main() {  ...
  • Flora_SM
  • Flora_SM
  • 2018-01-25 16:19:31
  • 65

【模拟】洛谷 P1055 ISBN号码

题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位...
  • hyj542682306
  • hyj542682306
  • 2017-05-05 15:09:18
  • 218

经典C++题目ISBN号码

  • 2016年10月22日 19:18
  • 442B
  • 下载

洛谷 p1055 ISBN号码

洛谷 p1055 ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-...
  • wynplay
  • wynplay
  • 2018-01-10 20:19:40
  • 50

NOIP2008:ISBN号码

#include #include #include char a[20]; int main(){     int i,j,k,m,n;     gets(a);     m=(a[0]-48)+(...
  • YZR949861741
  • YZR949861741
  • 2016-01-31 16:31:00
  • 2247

洛谷P1055 ISBN号码

字符串水题,判断情况。用格式化输入能够显著提高效率。
  • YiQ_Wang
  • YiQ_Wang
  • 2016-07-08 16:38:03
  • 296

洛谷 P1055 ISBN号码

题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位...
  • Zeolim
  • Zeolim
  • 2018-04-06 18:49:05
  • 10

CCF之ISBN号码(java)

试题编号: 201312-2 试题名称: ISBN号码 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   每一本正式出版的图书都有一个ISB...
  • zjj582984208
  • zjj582984208
  • 2017-02-15 15:23:10
  • 683
    个人资料
    持之以恒
    等级:
    访问量: 394
    积分: 548
    排名: 9万+
    文章存档
    最新评论