【洛谷学习自留】p1055 ISBN 号码

解题思路:

1.首先考虑怎么分解字符串的问题,把字符串内的数字拿出来,这里我使用了String的toCharArray方法,将字符串内的所有字符拿出来,然后针对性的把所有数字轮流用于计算,因为数组内的数字是以字符的形式储存的,进行计算时会使用对应的ascii码值,所以要进行处理。

2.考虑针对不同情况的判断,当取模完成后,如果所得结果等于数组末位元素,或者结果为10并且末位元素为X,则输出Right,否则,如果所得结果不等于数组末位元素,则依次输出数组前12位,并输出取模结果。或者结果为10而末位元素不为X,则依次输出数组前12位,并输出X。

代码实现:

import java.util.Scanner;

public class p1055 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        int res = 0;
        char [] toChar = input.toCharArray();
        int counter = 1;
        for (int i = 0; i < 12; i++) {
            if(i==1|i==5|i==11){
                continue;
            }
            res += Character.getNumericValue(toChar[i])*counter;
            counter++;
        }

        int ans = res%11;

        if (ans==Character.getNumericValue(toChar[12])||(ans==10&&toChar[12]=='X')){
            System.out.println("Right");
        }
        else{
                for (int i = 0; i < 12; i++) {
                System.out.print(toChar[i]);
                }
            if(ans == 10){
            System.out.println("X");
            return;
        }
            System.out.print(ans);
        }
    }
}

相关推荐

  1. P1055 [NOIP2008 普及组] ISBN 号码

    2024-02-03 11:02:02       37 阅读
  2. P1255 数楼梯

    2024-02-03 11:02:02       24 阅读
  3. P8823

    2024-02-03 11:02:02       54 阅读
  4. P2863

    2024-02-03 11:02:02       40 阅读
  5. p2006题。p2006题。

    2024-02-03 11:02:02       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-03 11:02:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-03 11:02:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-03 11:02:02       87 阅读
  4. Python语言-面向对象

    2024-02-03 11:02:02       96 阅读

热门阅读

  1. Oracle分析SQL执行调优

    2024-02-03 11:02:02       49 阅读
  2. NoSQL

    NoSQL

    2024-02-03 11:02:02      49 阅读
  3. 【CS3CA】Computer Animation

    2024-02-03 11:02:02       50 阅读