洛谷 P1055 ISBN号码 Java做法 详解

洛谷 P1055 ISBN号码 Java做法 详解_第1张图片
洛谷 P1055 ISBN号码 Java做法 详解_第2张图片

package one;

import java.util.Scanner;

public class demo13 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String ISBN1 = sc.next();
		String ISBN = ISBN1.replaceAll("-", "");//去除"-"
		int sum = 0;//一串数字的结果的和,定初始值为0
		String su = "";//将字符串赋给su
		String last = ISBN.substring(ISBN.length() - 1, ISBN.length());//截取最后一位数
		String jie = ISBN1.substring(0, ISBN1.length() - 1);//截取字符串从开始到倒数第二位
		for (int i = 0; i < 9; i++) {
			//获取输入的ISBN字符串的下标,并将int型下标转为string型
			//每个数乘以(下标+1)(因为下标是从0开始的),再加上之前字符串计算的结果
			//字符串转换为整型,并存储到int类型中的sum中
			sum += (Integer.parseInt(String.valueOf(ISBN.charAt(i))) * (i + 1));
		}
		sum = sum % 11;//将结果取余11
		su = String.valueOf(sum);//将int变量sum转换成字符串,赋给su
		if (su.equals("10")) {//比较字符串型的su和字符串型的第10为数是否相等
			su = "X";//若相等则将x赋值给su
		}
		if (su.equals(last)) {//比较su和最后一位数是否相等,相等返回right
			System.out.println("Right");
		} else {//否则返回字符串和截取到的除最后一位数的字符串
			System.out.println(jie + su);
		}
	}
}

你可能感兴趣的:(数据结构与算法,java)