zoukankan      html  css  js  c++  java
  • ISBN号码

    题意

    首位数字乘以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号码。


    分析

    先一个循环,算出它的识别码,再来判断它是否正确。


    var
    n:string;
    l,l1,t,i,r:longint;
    begin
        read(n);l:=length(n);
        l1:=0;t:=0;
        for i:=1 to l do
        begin
            if (n[i]>='0')and(n[i]<='9')and(l1<9) then
            begin
                l1:=l1+1;
                t:=t+(ord(n[i])-ord('0'))*l1;
            end;
        end;
        if (n[13]='X') then r:=10 else  r:=ord(n[13])-ord('0');
        t:=t mod 11;
        if r=t then write('Right') else
        begin
            write(copy(n,1,12));
            if t=10 then write('X') else write(t);
        end;
    end.



  • 相关阅读:
    BZOJ2738 矩阵乘法
    BZOJ3585 mex
    BZOJ1930 [Shoi2003]pacman 吃豆豆
    BZOJ3858 Number Transformation
    vue2.0学习小列子
    vue2.0 tab切换几种方式
    github学习
    只有自己看的懂的vue 二叉树的3级联动
    vuex学习
    vue2.0 MintUI安装和基本使用
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500183.html
Copyright © 2011-2022 走看看