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

软件版本: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.05.01 [复制链接]

1#
题目描述

给定一个数字n,找出1到n(含n)中,经过淘汰后最终剩下到数字。
淘汰到规则是:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。
重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。
不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。

【示例】
输入:9
输出:6
解释:1,2,3,4,5,6,7,8,9中,第一轮淘汰1、3、5、7、9后剩下2、4、6、8,第二轮淘汰4、8剩下2、6,第三轮淘汰2,所以最终结果是6

题目难度:简单
题目来源:CodeWars-Last man standing
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 一站到底(数字)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert 一站到底(1) = 1
  6. SmAssert 一站到底(9) = 6
  7. SmAssert 一站到底(100) = 54
  8. SmAssert 一站到底(1000) = 510
复制代码

参考题解


  1. Import "SmAssert.dll"

  2. Function 一站到底(数字)
  3.     
  4.     '【作者】:神梦无痕
  5.     '【QQ】:1042207232
  6.     '【Q群】:584781753
  7.     
  8.     Dim sc
  9.     Dim 返回值, 步进, 向量
  10.     
  11.     Set sc = CreateObject("MSScriptControl.ScriptControl")
  12.     sc.Language = "JScript"
  13.     返回值 = 1: 步进 = 1: 向量 = 0
  14.     While(数字 > 1)
  15.         If Not 数字 Mod 2 And 向量 Mod 2 Then
  16.             返回值 = 返回值 - 步进
  17.         End If
  18.         返回值 = 返回值 + 步进
  19.         数字 = sc.Eval(数字 & ">>" & 1)
  20.         步进 = sc.Eval(步进 & "<<" & 1)
  21.         向量 = 向量 + 1
  22.     Wend
  23.     Set sc = Nothing
  24.     一站到底 = 返回值
  25. End Function


  26. SmAssert 一站到底(1) = 1
  27. SmAssert 一站到底(9) = 6
  28. SmAssert 一站到底(100) = 54
  29. SmAssert 一站到底(1000) = 510
复制代码





插件下载

 

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

2#

1111111111

3#

1111111111111

4#

1111111111111

发新话题 回复该主题