首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mad Libs数序列

Mad Libs数序列
EN

Code Golf用户
提问于 2020-03-07 19:13:28
回答 2查看 834关注 0票数 27

我的机器人产生了疯疯癫癫-style 序列的挑战,变得无赖了!为了打败它,我需要你编写能够解决所有挑战的代码。

您的输入是对空格A、B、C的三个选择,每个选项来自(1,2,3),指定要解决的顺序问题,以及数字n,这是对挑战的输入。

挑战

给定正整数n,输出(A) ________

A: (1) n'th (2) n是否是a (3) -- n之上的最小数,即a

阳性(B) _______

B: (1) 斐波那契数 (2) 三角数 (3)倍数为3

其基-10表示(C) _______

C: (1)以相同的digit. (2)开始和结束,order. (3)没有任何1's。

示例

给定选择(A, B, C) = (3, 1, 1)n=13,挑战是“给定一个正整数n,输出(A3)在n之上的最小数,即正(B1)斐波那契数,其基-10表示(C1)以相同的数字开始和结束。”对于输入n=13,比13大的斐波那契数从21, 34, 55, 89, ...开始,第一个以相同数字开头和结尾的数字是55。所以你应该输出55。

详细信息

  • 您可以采用填充空白选择一个索引(1,2,3)或零索引(0,1,2)。
  • 请注意,我们将序列限制为正值,因此它们都不包含零。它们从开始
    • Fibonacci:1, 1, 2, 3, ...
    • 三角形:1, 3, 6, 10, ...
    • 3的倍数:3, 6, 9, 12, ...

  • 对于选择A1,输出n'th元素,n是一个索引的,因此,n=1 Fibonacci数是1,n=2 Fibonacci数也是1,n=3提供2等等。
  • 为了确定n是否在序列(A2)中,可以使用任意两个一致的输出决策问题-style。
  • 您可以假设每个序列都有一个满足每个条件C的无穷多项,而不必担心机器溢出之类的情况会发生什么。
  • 对于C2,按排序顺序排列的数字可以有“绑定”,例如377

测试用例

以下是与n=10的每一个组合的所有输出,如(A,B,C), n: result。对于这些,我们使用一个索引的选择,对于A2,我们使用1/0来表示True/False

代码语言:javascript
运行
复制
(1, 1, 1), 10: 165580141
(1, 1, 2), 10: 89
(1, 1, 3), 10: 987
(1, 2, 1), 10: 1431
(1, 2, 2), 10: 78
(1, 2, 3), 10: 276
(1, 3, 1), 10: 222
(1, 3, 2), 10: 36
(1, 3, 3), 10: 42
(2, 1, 1), 10: 0
(2, 1, 2), 10: 0
(2, 1, 3), 10: 0
(2, 2, 1), 10: 0
(2, 2, 2), 10: 0
(2, 2, 3), 10: 0
(2, 3, 1), 10: 0
(2, 3, 2), 10: 0
(2, 3, 3), 10: 0
(3, 1, 1), 10: 55
(3, 1, 2), 10: 13
(3, 1, 3), 10: 34
(3, 2, 1), 10: 55
(3, 2, 2), 10: 15
(3, 2, 3), 10: 28
(3, 3, 1), 10: 33
(3, 3, 2), 10: 12
(3, 3, 3), 10: 24

对于每个挑战组合,前10个输出( n=1n=10 )如下:

代码语言:javascript
运行
复制
(1, 1, 1): 1, 1, 2, 3, 5, 8, 55, 17711, 63245986, 165580141,
(1, 1, 2): 1, 1, 2, 3, 5, 8, 13, 34, 55, 89,
(1, 1, 3): 2, 3, 5, 8, 34, 55, 89, 233, 377, 987,
(1, 2, 1): 1, 3, 6, 55, 66, 171, 595, 666, 1081, 1431,
(1, 2, 2): 1, 3, 6, 15, 28, 36, 45, 55, 66, 78,
(1, 2, 3): 3, 6, 28, 36, 45, 55, 66, 78, 253, 276,
(1, 3, 1): 3, 6, 9, 33, 66, 99, 111, 141, 171, 222,
(1, 3, 2): 3, 6, 9, 12, 15, 18, 24, 27, 33, 36,
(1, 3, 3): 3, 6, 9, 24, 27, 30, 33, 36, 39, 42,
(2, 1, 1): 1, 1, 1, 0, 1, 0, 0, 1, 0, 0,
(2, 1, 2): 1, 1, 1, 0, 1, 0, 0, 1, 0, 0,
(2, 1, 3): 0, 1, 1, 0, 1, 0, 0, 1, 0, 0,
(2, 2, 1): 1, 0, 1, 0, 0, 1, 0, 0, 0, 0,
(2, 2, 2): 1, 0, 1, 0, 0, 1, 0, 0, 0, 0,
(2, 2, 3): 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
(2, 3, 1): 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
(2, 3, 2): 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
(2, 3, 3): 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
(3, 1, 1): 2, 3, 5, 5, 8, 8, 8, 55, 55, 55,
(3, 1, 2): 2, 3, 5, 5, 8, 8, 8, 13, 13, 13,
(3, 1, 3): 2, 3, 5, 5, 8, 8, 8, 34, 34, 34,
(3, 2, 1): 3, 3, 6, 6, 6, 55, 55, 55, 55, 55,
(3, 2, 2): 3, 3, 6, 6, 6, 15, 15, 15, 15, 15,
(3, 2, 3): 3, 3, 6, 6, 6, 28, 28, 28, 28, 28,
(3, 3, 1): 3, 3, 6, 6, 6, 9, 9, 9, 33, 33,
(3, 3, 2): 3, 3, 6, 6, 6, 9, 9, 9, 12, 12,
(3, 3, 3): 3, 3, 6, 6, 6, 9, 9, 9, 24, 24,
EN

回答 2

Code Golf用户

发布于 2020-03-07 23:35:56

Wolfram语言(数学),245个字节

输入{a,b,c,n}

A(2)为真/假

代码语言:javascript
运行
复制
(d=#4;a=#;c=#3;n={#&@@(i=IntegerDigits)@#==#~Mod~10&,OrderedQ@i@#&,i@#~FreeQ~1&};{t=v=1;While[v<=d,While[!n[[c]][#@t++]];v++];#[t-1],!FreeQ[#[w=Range[3d]],d]&&n[[c]]@d,#&@@Select[Select[#@w,#>d&],n[[c]]]}[[a]]&[{Fibonacci,#(#+1)/2&,3#&}[[#2]]])&

在网上试试!

这里都是n=1到10的测试用例

票数 2
EN

Code Golf用户

发布于 2020-03-09 09:17:24

Python 2,162个字节

输入A,B,C是0-索引.

代码语言:javascript
运行
复制
a,b,c,n=input();
i=0;x=k=1
while[n,i<n,i<=n][a]|1-x:i,k=[k,k+i,i+3][b],k+(b or i);s=`i`;x=[s[0]==s[-1],sorted(s)==list(s),not'1'in s][c];n-=x>a
print[i,i==n][a%2]

在网上试试!

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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