首页
学习
活动
专区
圈层
工具
发布

爬书架
EN

Code Golf用户
提问于 2022-01-31 17:55:31
回答 15查看 2.4K关注 0票数 21

Introduction

你正在制造一个机器人,它可以导航一组不同高度的书籍。它可以爬上书,从书本上跳下来,但如果距离太大,它就会停下来,以防损坏。为了找到理想的设计,你正在编写一个模拟器。

您的程序将接受一个数字列表作为输入,表示书架上书籍的高度,以及表示机器人耐用性的数字。从清单的第一项开始,你的机器人将穿越书架。如果机器人的高度发生变化,只有当变化小于或等于机器人的耐久性时,它才能继续。您的工作是从0或1开始,输出机器人停在哪本书上。您可以放心地假设,机器人所在的第一本书的高度等于或低于机器人的耐用性。

评分

这是密码-高尔夫,所以最短的答案获胜。

示例(从1开始)

代码语言:javascript
复制
[1, 1, 1], 1 -> 3
[0, 1, 0], 0 -> 1
[1, 2, 3, 2], 1 -> 4
[1, 3, 4, 4, 0], 2 -> 4
[1, 3, 4, 4, 0, 1], 2 -> 4
EN

回答 15

Code Golf用户

发布于 2022-01-31 21:41:58

Wolfram语言(数学),33字节

代码语言:javascript
复制
dIf[Abs[#2-#]>d,0,1+#0@##2,0]&

在网上试试!

输入[durability][heights...]。返回0-索引。

代码语言:javascript
复制
If[Abs[#2-#]>d             ]    is the next height difference out of limits?
              ,0                  yes: 0
                ,1+#0@##2         no : recurse on tail and add 1
                         ,0       err: 0 (input len <2)
票数 11
EN

Code Golf用户

发布于 2022-01-31 17:59:55

JavaScript (ES7),41字节

-6感谢@emanresu A

代码语言:javascript
复制
d=>f=([a,...x])=>(a-x[0])**2<=d*d&&-~f(x)

JavaScript (ES7),42字节

代码语言:javascript
复制
d=>f=([a,...x])=>(a-x[0])**2<=d*d?f(x)+1:1

递归解以输入通过赛跑,机器人耐用性第一。

依赖于NaN <= x始终是假的,保存检查以查看x是否足够长。

票数 6
EN

Code Golf用户

发布于 2022-01-31 18:09:44

维沙尔,7字节

代码语言:javascript
复制
¯ȧ<1JTh

在网上试试!

代码语言:javascript
复制
¯ȧ      # Get absolute differences
  <     # Find all less than the input
   1J   # Append a 1
      h # Get the first...
     T  # Index of a 1
票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/242108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档