您的任务是获取Rummy序列的输入n
和输出元素n
,该序列是我制作的(在OEIS上查找不会帮助您)。
定义
Rummy序列的每个元素都是一组真或假值。例如:[true, false]
。
生成Rummy序列的成员的步骤非常简单:
- 从第一个索引开始
[]
(这是元素0)。 - 将最左边的falsey设置为true。如果没有要更改的错误,则将列表的长度增加1并将新列表的所有成员设置为错误。
- 重复步骤2直到到达element
n
。
例
让我们将函数定义为rummy(int n)
({}
插入是为得到答案所采取的步骤):
>>> rummy(5)
{[]}
{[false]}
{[true]}
{[false, false]}
{[true, false]}
[true, true]
规则
- 有标准漏洞。
- 必须通过您的语言的数字上限来输入0。
- 您可以以您认为合适的任何方式输出,只要清楚地知道输出是一组true / falseys。
琐事
我将其称为“ Rummy序列”是因为从索引2开始,它定义了在每一轮Progressive Rummy中需要放置的集合,其中falsey是一本书,而Truth是运行。
测试用例
>>> rummy(0)
[]
>>> rummy(1)
[false]
>>> rummy(6)
[false, false, false]
>>> rummy(20)
[true, true, true, true, true]
>>> rummy(1000)
[true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
这有点像反向计数二进制文件
—
ThreeFx
@ThreeFx除外,当添加
—
Addison Crump
1
到时11
,您得到000
而不是100
。; P
我们的答案可以一索引吗?
—
Downgoat
我认为您应该包括更多测试用例,即使示例中隐含地提到了输出。我的第一个修订版本的第一个案例出现了问题……
—
丹尼斯
@VTCAKAVSMoACE这将使它成为双射的二进制数(这也是我们面临的挑战),但是还有更多的区别,因为每个数字始终都是形式
—
Martin Ender
1*0*
。