题解 | #[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;
}
}