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

软件版本: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

快捷导航

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

发新话题 回复该主题

[神梦] 【每日一题】幸运票 - 2022.07.08 [复制链接]

1#
题目描述

在前苏联的一些国家,有一种关于幸运票的信仰。如果票号左半部分的数字总和等于右半部分的数字总和,则任何种类的交通票都被认为是幸运的。以下是此类数字的示例:

003111 # 3 = 1 + 1 + 1
813372 # 8 + 1 + 3 = 3 + 7 + 2
17935 # 1 + 7 = 3 + 5 // 如果长度为单数则忽略掉中间的数字.
56328116 # 5 + 6 + 3 + 2 = 8 + 1 + 1 + 6

这些票要么在使用后被吃掉,要么被收集来炫耀。
您的任务是编写一个函数,如果参数是幸运票号的字符串十进制表示形式,或者所有其他数字luck_check(str) ,则返回True/False。它应该为空字符串或不代表十进制数的字符串返回 “invalid input”(原题是抛错,这边修改成了返回错误的提示)。


题目难度:简单
题目来源:Luck check | Codewars
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 幸运票(票号)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert 幸运票("683179") = True
  6. SmAssert 幸运票("683000") = False
  7. SmAssert 幸运票("") = "invalid input"
  8. SmAssert 幸运票("6F43E8") = "invalid input"
  9. SmAssert 幸运票("17935") = True
复制代码

参考题解

  1. Import "SmAssert.dll"

  2. Function 幸运票(票号)
  3.     
  4.     '【作者】:神梦无痕
  5.     '【QQ】:1042207232
  6.     '【Q群】:584781753


  7.     ' 判断非纯数字报错
  8.     If IsNumeric(CStr(票号)) = False Then
  9.         幸运票 = "invalid input"
  10.         Exit Function
  11.     End If
  12.     
  13.     ' 将数字分为左右两组
  14.     Dim Left_Begin, Left_End, Right_Begin, Right_End
  15.     Left_Begin = 1
  16.     Left_End = Len(票号) / 2
  17.     Right_Begin = Left_End + 1
  18.     Right_End = Len(票号)
  19.     
  20.     If Len(票号) Mod 2 = 1 Then
  21.         ' 如果长度为单数则忽略掉中间的数字
  22.         Left_End = (Len(票号) + 1) / 2 - 1
  23.         Right_Begin = Left_End + 2
  24.     End If
  25.     
  26.     ' 计算左半部分的数字总和
  27.     Dim i, Left_Sum
  28.     For i = Left_Begin To Left_End
  29.         Left_Sum = Left_Sum + Int(Mid(票号, i, 1))
  30.     Next
  31.     
  32.     ' 计算右半部分的数字总和
  33.     Dim j, Right_Sum
  34.     For j = Right_Begin To Right_End
  35.         Right_Sum = Right_Sum + Int(Mid(票号, j, 1))
  36.     Next
  37.     
  38.     幸运票 = CBool(Left_Sum = Right_Sum)
  39. End Function


  40. SmAssert 幸运票("683179") = True
  41. SmAssert 幸运票("683000") = False
  42. SmAssert 幸运票("") = "invalid input"
  43. SmAssert 幸运票("6F43E8") = "invalid input"
  44. SmAssert 幸运票("17935") = True
复制代码










插件下载

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

2#

回复看看是什么鬼

3#

好久没来了,老学员一枚~~~

4#

能看到嘛数据

发新话题 回复该主题