题解 | #[NOIP2008]ISBN号码#

[NOIP2008]ISBN号码

https://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //输入字符串样式
        String str = sc.nextLine();//0-670-82162-4
        //分割字符窜
        String[] strarr = str.split("-");//'0','670','82162','4'
        int num1 = Integer.parseInt(strarr[0]);//0
        int num2 = Integer.parseInt(strarr[1].substring(0, 1)); //6
        int num3 = Integer.parseInt(strarr[1].substring(1, 2));//7
        int num4 = Integer.parseInt(strarr[1].substring(2, 3));//0
        int num5 = Integer.parseInt(strarr[2].substring(0, 1)); //8
        int num6 = Integer.parseInt(strarr[2].substring(1, 2)); //2
        int num7 = Integer.parseInt(strarr[2].substring(2, 3)); //1
        int num8 = Integer.parseInt(strarr[2].substring(3, 4)); //6
        int num9 = Integer.parseInt(strarr[2].substring(4, 5)); //2

        String judge = strarr[3];//X
        //对前9个数字求识别码
        int sum = num1 * 1 + num2 * 2 + num3 * 3 + num4 * 4 + num5 * 5 + num6 * 6 +
                  num7 * 7 + num8 * 8 + num9 * 9;
        int ans = sum % 11; //识别码
        //将计算的识别码与输入的识别码进行比较
        //对ans==10?特判
        if (ans == 10) {
            if (judge.equals("X")) {
                System.out.println("Right");
            } else {
                System.out.println(strarr[0] + "-" + strarr[1] + "-" + strarr[2] + "-" + "X");
            }
        } else {
            char ansjudge = (char) (ans + '0');
            if (ansjudge == judge.charAt(0)) {
                System.out.println("Right");
            } else {
                System.out.println(strarr[0] + "-" + strarr[1] + "-" + strarr[2] + "-" + ans);
            }
        }
    }
}

全部评论

相关推荐

找只鸡:可以,直接拉黑这个邮箱
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务