让我先AC


私信TA

用户名:dotcpp0769559

访问量:15

签 名:

等  级
排  名 53568
经  验 266
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 佛山大学
专  业

  自我简介:

TA的其他文章

解题思路:

(1)输入ISBN号码字符串string

(2)根据数字Ascll码的范围分批将9位数字和1位识别码按列表和字符串存储

(3)对存储9位数字的列表元素整数化处理,按照规则对元素计算加权和

(4)对加权和结果取余

(5)由于取余结果存在的特殊性故将存储9位数字的列表元素字符化处理

(6)在取余结果=10的情况下:

若识别码=”X”,则说明ISBN正确

若识别码!=”X”,则将”X”赋值给识别码,对列表中插入分隔符,将 识别码加入到列表中,将列表转换为字符串输出正确的ISBN码

(7)在取余结果!=10的情况下:

若识别码=str(取余结果),则说明ISBN正确

若识别码!=str(取余结果),则将str(取余结果)赋值给识别码,对列表 中插入分隔符,将识别码加入到列表中,将列表转换为字符串输出正 确的ISBN码

注意事项:

参考代码:

string = input()

list_string = []

for i in range(0, len(string), 1):

    if (ord(string[i]) >= 48 and ord(string[i]) <= 57) and (i != len(string)-1):

        list_string.append(string[i])

    elif i == len(string)-1:

        recognize = string[i]


list_sum = 0

for i in range(0, len(list_string), 1):

    list_string[i] = int(list_string[i])

    list_sum += list_string[i] * (i+1)

list_mod = list_sum % 11


for i in range(0, len(list_string), 1):

    list_string[i] = str(list_string[i])


if list_mod == 10:

    pass

    if recognize == 'X':

        print("Right")

    else :

        recognize = 'X'

        list_string.insert(1, "-")

        list_string.insert(5, "-")

        list_string.insert(11, "-")

        list_string.append(recognize)

        new_string = "".join(list_string)

        print(new_string)


else :

    pass

    if recognize == str(list_mod):

        print("Right")

    else :

        recognize = str(list_mod)

        list_string.insert(1, "-")

        list_string.insert(5, "-")

        list_string.insert(11, "-")

        list_string.append(recognize)

        new_string = "".join(list_string)

        print(new_string)



 

0.0分

2 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »