您可能熟悉斐波那契数列,其中前两个项是0, 1
(或有时是1, 1
),其后的每个项都是前两个项的总和。它是这样开始的:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
有时,序列包含具有特殊图案的数字,我发现这很有趣:相邻数字对之间的差异与其他任何对相同。例如,在以开头的序列中0, 1
,第18个项是987
。9-8=1
和8-7=1
。我很满意。
挑战
给定两个初始值F(0)
和F(1)
,输出由生成的序列F(n) = F(n-1) + F(n-2)
中满足以下条件的每个数字:
- 任何一对相邻数字之间的差异与任何其他一对相同
- 至少三位数字长(此模式对1位和2位数字不感兴趣)
输入值
- 小于10 ** 10(100亿)的两个非负整数
输出量
- 所有小于10 ** 10且符合“挑战”部分中的条件的整数
- 输出大于10 ** 10的数字是可以接受的,但这不是必需的
- 假设重复的数字符合模式(例如
777
),则可能有无数个符合条件的数字,但您的程序不需要永远输出 - 如果不存在这样的整数,则输出任何您想要的东西,只要它不是数字即可(无,空,空数组,错误消息,悲伤的面孔等)。
- 如果与模式匹配的数字在序列中出现多次,则可以将其输出一次或多次
- 如果任何输入符合条件,则应将其包含在输出中
规则
示例/测试用例
Input , Output
[1,10] , []
[0,1] , [987]
[2,1] , [123]
[2,3] , [987]
[61,86] , [147]
[75,90] , [420]
[34,74] , [1234]
[59,81] , [2468]
[84,85] , [7531]
[19,46] , [111]
[60,81] , [222]
[41,42] , [333]
[13,81] , [444]
[31,50] , [555]
[15,42] , [666]
[94,99] , [777]
[72,66] , [888]
[3189,826] , [888888888]
[15,3] , [159,258]
[22,51] , [321,1357]
[74,85] , [159,4444]
[27,31] , [147,11111]
[123,0] , [123,123,123,246,369]
[111,0] , [111,111,111,222,333,555,888]
[111,222] , [111,222,333,555,888]
[33345,692] , [987654321]
[3894621507,5981921703] , [9876543210]
[765432099,111111111] , [111111111,876543210,987654321]
[1976,123] , [123, 2222, 4321, 6543, 45678]
[1976, 123] -> [123, 2222, 4321, 6543, 45678]
,[3189, 826] -> [888888888]
,[33345, 692] -> [987654321]