12
找到斐波那契模式
您可能熟悉斐波那契数列,其中前两个项是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] …