洛谷P 1055のISBN番号のJava実現
テーマソース
P 1055[NOIP 2008普及グループ]ISBN番号
ACコード
注意すべき点:剰余が10の場合、識別コードと一致しない場合は、最後に数字ではなくXを出力する. 残数が10でない場合、元の入力がXである可能性があり、直接Xを整数に変換できないことを考慮して、判断しなければならない.
P 1055[NOIP 2008普及グループ]ISBN番号
ACコード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
String ISBN = scan.next();
char[] arr = ISBN.toCharArray();
int num = 0;
int count = 0;
for(int i = 0; i < arr.length-1; i++) {
if(arr[i] != '-') {
count++;
num = num + count*(Integer.parseInt(String.valueOf(arr[i])));
}
}
int result = num % 11;
if(result == 10) {
if(arr[arr.length-1]=='X')
System.out.print("Right");
else {
for(int i = 0; i < arr.length; i++) {
if(i == arr.length-1)
System.out.print("X");
else
System.out.print(arr[i]);
}
}
// 10
}else {
int judge = 0;
if(arr[arr.length-1]!='X') {
if(Integer.parseInt(String.valueOf(arr[arr.length-1]))==result) {
judge = 1;
System.out.print("Right");
}
}
if(judge == 0){
for(int i = 0; i < arr.length; i++) {
if(i == arr.length-1)
System.out.print(result);
else
System.out.print(arr[i]);
}
}
}
scan.close();
}
}
注意すべき点: