洛谷------ 基础1055-ISBN号码 and 1308-统计单词数

1055题目描述

输入输出样例

输入
0-670-82162-4
输出
Right

输入
0-670-82162-0
输出
0-670-82162-4

分析:

时间限制: 1s 内存限制:125MB

输入:

一个字符列表(ISBN书本识别码,包含9位数字、1位识别码、三位分隔符)

用识别码计算ISBN书本识别码是否正确

输出:

  1. 正确输出:right

  1. 错误:输出正确的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);
                            }


                        }
                    }
                }
            }
        }


    }
}

猜你喜欢

转载自blog.csdn.net/weixin_64428129/article/details/128545135