La séquence N-bonacci, inventée à l'origine par @DJMcMayhem dans cette question , est une séquence générée en commençant par les nombres entiers 0 et 1, puis en ajoutant les nombres N précédents pour générer le nombre suivant. La séquence N-bonacci spéciale est une séquence N-bonacci commençant par une paire de nombres autres que 0 et 1, qui seront nommés X et Y. Si N est supérieur au nombre de termes déjà dans la séquence, ajoutez simplement tous les disponibles termes.
Ainsi, par exemple, la séquence normale de fibonacci a un N de 2 (prend les deux éléments précédents), et un X et Y de 0 et 1, ou 1 et 1, selon qui vous demandez.
Ta tâche:
Vous devez écrire un programme ou une fonction qui vérifie si un entier entré (A) fait partie de la séquence N-bonacci spéciale générée par les trois prochains entiers (en utilisant la deuxième entrée comme N et les troisième et quatrième comme X et Y) . Assurez-vous de gérer le cas spécial de N = 1.
Contribution:
Quatre entiers non négatifs, A, N, X et Y.
Production:
Une valeur de vérité / fausse qui indique si A fait partie de la séquence N-bonacci générée par les entrées N, X et Y.
Cas de test:
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.
Notation:
Il s'agit de code-golf , donc le score le plus bas en octets l'emporte.
N=1
, vous voudrez peut-être l'appeler dans la question, car de nombreuses réponses (y compris toutes les réponses actuelles, je pense) auront une condition d'échec qui suppose une série strictement croissante. En outre, peut- X
il Y
être négatif? Cela invalidera probablement également toutes les réponses existantes.
8,1,8,9
et 9,1,8,9
vous assurer que la N=1
gestion des cas détecte la X
valeur non répétée ainsi que la Y
valeur. (Si vous souhaitez gérer les 0,0
cas, vous devez également l'ajouter.)
N==1
est un cas si étrange.