这不是很广为人知,但是我们称之为斐波那契数列
1, 1, 2, 3, 5, 8, 13, 21, 34...
实际上称为Duonacci序列。这是因为要获得下一个数字,您需要将前两个数字相加。还有Tribonacci序列,
1, 1, 1, 3, 5, 9, 17, 31, 57, 105, 193, 355, 653, 1201...
因为下一个数字是前三个数字的总和。和Quadronacci序列
1, 1, 1, 1, 4, 7, 13, 25, 49, 94, 181, 349, 673...
和每个人都喜欢的Pentanacci序列:
1, 1, 1, 1, 1, 5, 9, 17, 33, 65, 129...
以及Hexanacci序列,Septanacci序列,Octonacci序列等,依此类推,直到N-Bonacci序列。
N-bonacci序列将始终以N 1 开始。
挑战
您必须编写一个采用两个数字N和X并输出第一个X N-Bonacci数字的函数或程序。N将是一个大于0的整数,并且您可以放心地假设N-Bonacci数字不会超出您语言中的默认数字类型。输出可以采用任何人类可读的格式,并且您可以采用任何合理的方式进行输入。(命令行参数,函数参数,STDIN等)
像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且以字节为单位的最短答案为胜!
样品IO
#n, x, output
3, 8 --> 1, 1, 1, 3, 5, 9, 17, 31
7, 13 --> 1, 1, 1, 1, 1, 1, 1, 7, 13, 25, 49, 97, 193
1, 20 --> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
30, 4 --> 1, 1, 1, 1 //Since the first 30 are all 1's
5, 11 --> 1, 1, 1, 1, 1, 5, 9, 17, 33, 65, 129
1, 1, 2, 4, 7
像第三名那样0 + 1 + 1
吗?...所以一个与其他人?