zoukankan      html  css  js  c++  java
  • 书号验证

    2004年起,国际ISBN中心出版了《13位国际标准书号指南》。
    原有10位书号前加978作为商品分类标识;校验规则也改变。
    校验位的加权算法与10位ISBN的算法不同,具体算法是:
    用1分别乘ISBN的前12位中的奇数位(从左边开始数起),用3乘以偶数位,乘积之和以10为模,10与模值的差值再对10取模(即取个位的数字)即可得到校验位的值,其值范围应该为0~9。

    下面的程序实现了该算法,请仔细阅读源码,填写缺失的部分。

    // 验证成功返回1,否则返回0

    #include <iostream>
    using namespace std;
    int f(const char* s)
    {
        int k=1;
        int sum = 0;
        int i;
        for(i=0; s[i]!=''; i++){
            char c = s[i];
            if(c=='-' || c==' ') continue;
            sum += ;  //填空
            k++;
            if(k>12) break;
        }
    
        while(s[i]!='') i++;
    
        return (s[i-1]-'0') == (10-sum % 10)%10;
    }
    
    int main()
    {
        printf("%d
    ",f("978-7-301-04815-3"));
        printf("%d
    ",f("978-7-115-38821-6"));
        return 0;
    }

    注意:只提交空缺的代码,不要抄写已经存在的代码。

  • 相关阅读:
    树状数组进阶
    洛谷 P2824 [HEOI2016/TJOI2016]排序
    抽象类
    关于getClass()和instanceof的区别与联系
    Java中的强制类型转换
    Java中的内联
    Java关键字之final
    Java中的"is-a"规则
    关于虚方法
    Java中的动态绑定
  • 原文地址:https://www.cnblogs.com/8023spz/p/10586194.html
Copyright © 2011-2022 走看看