题解 | #[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;  
    }
}
         
全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务