1055题目描述
输入输出样例
输入
0-670-82162-4
输出
Right
输入
0-670-82162-0
输出
0-670-82162-4
分析:
时间限制: 1s 内存限制:125MB
输入:
一个字符列表(ISBN书本识别码,包含9位数字、1位识别码、三位分隔符)
用识别码计算ISBN书本识别码是否正确
输出:
正确输出:right
错误:输出正确的ISBN号码
重点:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a=1; //用于计算识别码的乘数
int sum=0; //用于计算识别码数字的九位和
int c;
String s = sc.nextLine();
for (int i = 0; i < s.length(); i++) {
char temp1 = s.charAt(i);
if(temp1>='0' && temp1<='9' || temp1=='X'){
int b = temp1-'0'; //字符转化位整型 ’0‘ASCLL码 为48
if(a<10){
sum+=b*a;
a++;
}
} else
{
continue;
}
if(i==s.length()-1){ //数字计算完毕到识别位
if(temp1=='X'){
c =10;
}else
{
c = temp1-'0';
}
int d=sum%11;
if(d==c){
System.out.println("Right");
}else {
for (int j = 0; j < s.length()-1; j++) {
char temp2=s.charAt(j);
System.out.print(temp2);
if(j==s.length()-2) { //循环到识别码
if(d==10){ //计算结果是10 ,转换为相应的字符X
System.out.println("X");
}else {
System.out.print(d);
}
}
}
}
}
}
}
}