【算法】程序猿不写代码是不对的53
来源:互联网 发布:mysql存储过程 编辑:程序博客网 时间:2024/06/02 02:50
package com.kingdz.algorithm.time201705;/** * 校验ISBN号 * * <pre> * ISBN号形如:7-118-01984-4 * 7代表中国,118代表国防工业出版社,01984代表书名号,最后一位表示校验码 * 校验码的计算规则是用10到2这九个数分别顺序乘以ISBN的前九位数,所得乘积之和与11取模,其余数于11的差即是校验位的数值。 * 所以校验位的数值是0到10的任意一个数,其中10用X来表示 * </pre> * * @author kingdz * */public class Algo11 {public static void main(String[] args) {String isbn = "7-118-01984-4";String okIsbn = checkISBN(isbn);System.out.println("origin isbn[" + isbn + "]");if (isbn.equals(okIsbn)) {System.out.println("RIGHT");} else {System.out.println(okIsbn);}}private static String checkISBN(String isbn) {String newisbn = isbn.replace("-", "");if (newisbn.length() != 10 || !newisbn.substring(0, 9).matches("^\\d+$")) {return null;}int sum = 0;int num = 10;for (int i = 0; i < newisbn.length(); i++) {sum = sum + num * Integer.parseInt("" + newisbn.charAt(i));num--;if (num == 1) {break;}}sum = sum % 11;sum = Math.abs(11 - sum);String c = "X";if (sum < 10) {c = "" + sum;}if (isbn.endsWith("" + c)) {return isbn;} else {String ret = isbn.substring(0, isbn.length() - 1) + c;return ret;}}}
0 0
- 【算法】程序猿不写代码是不对的53
- 【算法】程序猿不写代码是不对的1
- 【算法】程序猿不写代码是不对的2
- 【算法】程序猿不写代码是不对的3
- 【算法】程序猿不写代码是不对的4
- 【算法】程序猿不写代码是不对的5
- 【算法】程序猿不写代码是不对的6
- 【算法】程序猿不写代码是不对的7
- 【算法】程序猿不写代码是不对的8
- 【算法】程序猿不写代码是不对的9
- 【算法】程序猿不写代码是不对的10
- 【算法】程序猿不写代码是不对的11
- 【算法】程序猿不写代码是不对的12
- 【算法】程序猿不写代码是不对的13
- 【算法】程序猿不写代码是不对的14
- 【算法】程序猿不写代码是不对的15
- 【算法】程序猿不写代码是不对的16
- 【算法】程序猿不写代码是不对的17
- java语言中的异常
- 多进程与多线程的区别?
- 正则表达式基本语法
- Echarts3.0加载和订正气象格点数据源码
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- 【算法】程序猿不写代码是不对的53
- configure: error: no acceptable C compiler found in $PATH 问题解决
- Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'
- Spring各个jar包作用
- 利用python进行数据分析——p26,"一定要以pylab模式”打开如何解决
- springmvc登陆例子详情解析
- Java ---多线程1
- input输入框回车事件响应
- Gson的使用