书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。

首页 » 算法 » 书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。

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

package nine;
 
public class shyz {
	static boolean f(String s){
		int k=1;
		int sum = 0;
		for(int i=0; i<s.length(); i++){
			char c = s.charAt(i);
			if(c=='-' || c==' ') continue;
			sum +=Integer.parseInt(String.valueOf(c))*(k % 2 == 0?3:1);//填空
			k++;
			if(k>12) break; 
		}
 
		return s.charAt(s.length()-1)-'0' == (10-sum % 10)%10;
	}
 
	public static void main(String[] args){
		System.out.println(f("978-7-301-04815-3"));
		System.out.println(f("978-7-115-38821-6"));
	}
}
 
 
 
标签:
分享到:
赞(0) 打赏

评论 6

评论前必须登录!

 

  1. #1

    挺明白的

    笨鸟先飞8个月前 (03-27)
  2. #2

    还可以

    努力8个月前 (03-27)
  3. #3

    我也是小白以后多多交流

    奋斗8个月前 (03-27)
  4. #4

    记住这个网站了

    奋斗8个月前 (03-28)
  5. #5

    我也是学计算机的

    笔记本8个月前 (03-28)
  6. #6

    渣渣混6个月前 (05-26)

觉得文章有用就打赏一下弟弟吧

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
正在播放:

作者想对您说:

累了就停下来听首歌吧

听完后会给您一个好心情

最后

等到您不容易

还希望您能多待一会儿

      00:00/00:00