• ISBN号码(蓝桥杯)


    ISBN号码

    题目描述

    每一本正式出版的图书都有一个 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 号码(保证输入符合 ISBN 号码的格式要求)。

    输出描述

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

    输入输出样例

    示例 1

    输入
    0-670-82162-4
    
    • 1
    输出
    Right
    
    • 1

    示例 2

    输入
    0-670-82162-0
    
    • 1
    输出
    0-670-82162-4 
    
    • 1

    c++

    #include
    using namespace std;
    
    int main()
    {
      string a;
      char yushu;
      cin>>a;
      int i=0,sum=0,j=1;
      for(i=0;i<11;i++)//对前11个数进行遍历 
      {
        if(a[i]>='0'&&a[i]<='9')//判断是否为数字 
        {
          sum+=(a[i]-'0')*j;
          j++;
        }
      }
      yushu=sum%11+'0';
      //在下面的判断前面使得 yushu = X 
      if(yushu-'0'==10)//如果余数为10则为X 
      //注意:这里不能为yushu=='10',这样是错误的,'10'为两个字符 
      {
      	yushu='X';
      }
      if(yushu==a.back())
        cout<<"Right";
      else
      {
      	a.back()=yushu;
    	cout<<a; 
      }
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    Spring Boot 统一功能处理
    LeetCode算法心得——最短且字典序最小的美丽子字符串(枚举的思想)
    vscode 快速生成标准javabean
    免费GPU:九天•毕昇平台使用教程
    servlet对象的生命周期
    appium操控微信小程序的坑
    修复Apache Shiro身份认证绕过漏洞 (CVE-2022-32532)步骤注意事项
    Windows 控制台程序的 binary 输出
    正则表达式匹配:进阶版
    Nginx+php+mysql+wordpress搭建自己的博客站点
  • 原文地址:https://blog.csdn.net/m0_73841621/article/details/133376384