题解 | #[NOIP2008]ISBN号码#

[NOIP2008]ISBN号码

http://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5

题解: 1.使用String的charAt()获取识别码 2.使用String的substring()接取识别码以外字符串以及repalce("-","")剔除字符串中的"-"

import java.util.*;

public class Main{
    public static void main(String[] args)throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
         String isbn = sc.next();
           System.out.println(solution(isbn));
           
        }
    }
    
    public static String solution(String isbn){
        // 获取最后一位识别码
         char iden = isbn.charAt(isbn.length() -1);
        // 获取除识别码以外的数字
            String code = isbn.substring(0,isbn.length() -1).replaceAll("-","");
            int iden_cal = 0;
           for(int i =0; i < code.length();i++){
               iden_cal += Integer.parseInt(code.substring(i,i+1)) * (i + 1);
           }
            iden_cal %= 11;
            if(iden_cal == 10){ 
                if(iden == 'X'){
                    return "Right";
                } else{
                    return isbn.substring(0,isbn.length() -1) + "X";
                }
                }
            if(iden_cal != 10){
                if(iden_cal == iden - '0'){
                     return "Right";
                } else{
                    return isbn.substring(0,isbn.length() -1) + iden_cal;
                }
            }
          return null;  
    }
}
         
全部评论

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务