酉383 2023-06-10 00:37 采纳率: 0%
浏览 19

这个这个代码怎么写。(语言-c语言)

这个怎么写,十个数字的isbn码包含?处丢失的数字,求?处有无数字可以组成合法的isbn码,如果有输出1没有输出-1

img

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-06-10 09:15
    关注
    isbn = "123456789?12" #这里你换成 input(),我在线测试写死的。
    valid = False
    
    # 枚举0-9的数字,替换?处并校验是否合法
    for i in range(10):
        test_isbn = isbn.replace("?", str(i))
        s = 0
        for j in range(1, 13):
            # 根据规则计算ISBN码校验位
            s += (10 - j) * int(test_isbn[j-1])
        check_digit = (11 - s % 11) % 11
        if check_digit == int(test_isbn[-1]):
            valid = True
            break
    
    # 输出结果
    if valid:
        print("1")
    else:
        print("-1")
    
    
    评论

报告相同问题?

问题事件

  • 请采纳用户回复 6月10日
  • 创建了问题 6月10日