Последовательность N-Боначи, изначально изобретенная @DJMcMayhem в этом вопросе , представляет собой последовательность, генерируемую, начиная с целых чисел 0 и 1, а затем добавляя предыдущие N чисел, чтобы сгенерировать следующее число. Специальная последовательность N-Боначи - это последовательность N-Боначи, начинающаяся с пары чисел, отличных от 0 и 1, которые будут называться 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-bonacci, генерируемой входами N, X и Y.
Тестовые случаи:
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.
Подсчет очков:
Это код-гольф , поэтому выигрывает самая низкая оценка в байтах.
N=1
, вы можете указать его в вопросе, поскольку многие ответы (включая все текущие ответы, я думаю) будут иметь состояние отказа, которое предполагает строго возрастающую последовательность. Кроме того, может X
и Y
быть отрицательным? Это, вероятно, также сделает недействительными все существующие ответы.
8,1,8,9
и 9,1,8,9
убедиться, что N=1
обработка случаев обнаруживает неповторяющееся X
значение, а также Y
значение. (Если вы хотите разобраться со 0,0
случаями, вы должны добавить это также.)
N==1
это такой странный случай.