N-bonacci序列最初是由@DJMcMayhem在此问题中发明的,它是通过以整数0和1开头,然后加上前N个数字以生成下一个数字而生成的序列。特殊的N-bonacci序列是一个以0和1以外的一对数字开头的N-bonacci序列,它们将被命名为X和Y。如果N大于序列中已经存在的项数,只需添加所有可用的条款。
因此,例如正常的斐波那契数列的N为2(取前两项),X和Y为0和1,或者1和1,具体取决于您问谁。
你的任务:
您将编写一个程序或函数来检查输入的整数(A)是否是由接下来的三个整数生成的特殊N-bonacci序列的一部分(将第二个输入用作N,将第三个和第四个用作X和Y) 。确保处理N = 1的特殊情况。
输入:
四个非负整数A,N,X和Y。
输出:
真/假值,指示A是否为N,X和Y输入生成的N-bonacci序列的一部分。
测试用例:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
得分:
这是代码高尔夫球,因此以字节为单位的最低分数获胜。
是的,但是奇怪的情况才使这个变得有趣:)
—
Gryphon
如果您确实希望答案能够解决问题
—
apsillers
N=1
,则可能需要在问题中加以说明,因为许多答案(包括我认为所有当前答案)的失败条件都将假设序列不断增加。另外,可以X
并且Y
为负吗?那可能还会使所有现有答案无效。
我认为所有现有答案都无法处理X和Y均为零的非递增情况。是否有必要处理这种情况?
—
apsillers
我认为您应该添加真实的案例,
—
apsillers
8,1,8,9
并9,1,8,9
确保N=1
案例处理能够检测到非重复X
值以及该Y
值。(如果您想处理0,0
案件,也应该添加。)
N==1
真是个奇怪的例子。