• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[神梦] 【每日一题】ISBN-10校验 - 2022.10.12 [复制链接]

1#
题目描述

ISBN-10标识符的长度为十位数。前九个字符是数字0-9。最后一个数字可以是0-9或X,表示值为10。
如果数字之和乘以其位置模11等于零,则ISBN-10数字有效。

【示例】
ISBN : 1 1 1 2 2 2 3 3 3 9
position : 1 2 3 4 5 6 7 8 9 10
它是一个合法的 ISBN-10:
(1*1 + 1*2 + 1*3 + 2*4 + 2*5 + 2*6 + 3*7 + 3*8 + 3*9 + 9*10) % 11 = 0

题目难度:简单
题目来源:ISBN-10 Validation | Codewars
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function ISBN10校验(标识符)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert ISBN10校验("1112223339") = True
  6. SmAssert ISBN10校验("048665088X") = True
  7. SmAssert ISBN10校验("1293000000") = True
  8. SmAssert ISBN10校验("1234554321") = True
  9. SmAssert ISBN10校验("1234512345") = False
  10. SmAssert ISBN10校验("1293") = False
  11. SmAssert ISBN10校验("X123456788") = False
  12. SmAssert ISBN10校验("ABCDEFGHIJ") = False
  13. SmAssert ISBN10校验("XXXXXXXXXX") = False
  14. SmAssert ISBN10校验("123456789T") = False
  15. SmAssert ISBN10校验("048665088XX") = False
复制代码

参考题解

  1. Import "SmAssert.dll"

  2. Function ISBN10校验(标识符)
  3.     '【作者】:神梦无痕
  4.     '【QQ】:1042207232
  5.     '【Q群】:584781753
  6.     Dim length, result, i, m, sum
  7.     
  8.     result = False
  9.     length = Len(标识符)
  10.     // 判断长度是否为10位
  11.     If length = 10 Then
  12.         // 判断前九位是否为纯数字
  13.         If IsNumeric(Left(标识符, 9)) Then
  14.             sum = 0
  15.         For i = 1 To 10
  16.             m = Mid(标识符, i, 1)
  17.             If IsNumeric(m) Then
  18.                 m = Int(m)
  19.             ElseIf UCase(m) = "X" Then
  20.                 m = 10
  21.             Else
  22.                 // 其他字母的不符合
  23.                 Goto over
  24.             End If
  25.             sum = sum + m * i
  26.         Next
  27.         // 如果数字之和乘以其位置模11等于零,则符合
  28.         If sum Mod 11 = 0 Then
  29.             result = True
  30.         End If
  31.     End If
  32.     End If
  33. Rem over
  34.     ISBN10校验 = result
  35. End Function


  36. SmAssert ISBN10校验("1112223339") = True
  37. SmAssert ISBN10校验("048665088X") = True
  38. SmAssert ISBN10校验("1293000000") = True
  39. SmAssert ISBN10校验("1234554321") = True
  40. SmAssert ISBN10校验("1234512345") = False
  41. SmAssert ISBN10校验("1293") = False
  42. SmAssert ISBN10校验("X123456788") = False
  43. SmAssert ISBN10校验("ABCDEFGHIJ") = False
  44. SmAssert ISBN10校验("XXXXXXXXXX") = False
  45. SmAssert ISBN10校验("123456789T") = False
  46. SmAssert ISBN10校验("048665088XX") = False
复制代码










插件下载

 
【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误

2#

顶。。。。。。。。。

3#

看看内容是啥

4#

学习一下

发新话题 回复该主题