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

楼梯数
EN

Code Golf用户
提问于 2017-07-01 14:44:24
回答 16查看 2K关注 0票数 32

楼梯数是正整数x,使得它的第n位数(以最小有效数开始的索引数)等于x% (n + 1)。这是一个小口,所以让我们看看一个例子。取7211311,如果在2-8范围内取7211311的模余数,我们得到如下结果:

代码语言:javascript
运行
复制
7211311 % 2 = 1
7211311 % 3 = 1
7211311 % 4 = 3
7211311 % 5 = 1
7211311 % 6 = 1
7211311 % 7 = 2
7211311 % 8 = 7

这是7211311的数字!因此,7211311是一个楼梯号。

任务

当给定一个正数作为输入时,编写的代码将输出两个不同的值,一个是楼梯编号,另一个不是。

这是一个密码-高尔夫竞争,所以您的目标应该是最小化源代码中的字节数。

测试用例

以下是前13道楼梯的编号:

代码语言:javascript
运行
复制
1, 10, 20, 1101, 1121, 11311, 31101, 40210, 340210, 4620020, 5431101, 7211311, 12040210
EN

回答 16

Code Golf用户

发布于 2017-07-01 14:48:49

05AB1E,6字节

代码:

代码语言:javascript
运行
复制
ā>%JRQ

使用05AB1E编码。在网上试试!

解释:

代码语言:javascript
运行
复制
ā        # Get the range [1 .. len(input)]
 >       # Increment by 1
  %      # Vectorized modulo
   J     # Join the array into a single number
    RQ   # Reverse that number and check if it's equal to the original input
票数 7
EN

Code Golf用户

发布于 2017-07-01 17:24:09

Python 2,54字节

代码语言:javascript
运行
复制
f=lambda n,x=0:10**x>n or(`n%(x+2)`==`n`[~x])*f(n,x+1)

在网上试试!

票数 6
EN

Code Golf用户

发布于 2017-07-01 18:00:59

Haskell,60字节

取数字为int

代码语言:javascript
运行
复制
x n|s<-show n=reverse s==(rem n.(+1)<A2gt;[1..length s]>>=show)
票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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