您的任务是获取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*。