Retour aux défis
Facile 0 résolus 0 % de réussite

Somme des termes pairs de Fibonacci

Additionnez les termes pairs de la suite de Fibonacci qui ne dépassent pas une limite donnée.

Ce que vous allez apprendre

  • Générer les termes de Fibonacci jusqu'à une limite
  • Ne garder que les termes pairs
  • Arrêter la boucle au bon moment

Problème

Commencez la suite avec 1 et 2. Chaque terme suivant est la somme des deux précédents. Incluez uniquement les termes de valeur paire qui ne dépassent pas la limite, puis additionnez-les.

Implémentez even_fibonacci_sum(limit).

Entrée

limit : La plus grande valeur de terme pouvant être incluse.

Sortie

Retournez la somme, ou 0 s'il n'y a aucun terme admissible.

Contraintes

0 ≤ limit ≤ 10¹⁵. Le résultat tient dans un entier signé 64 bits.

Exemples

Exemple 1
Entrée :
limit = 50

Sortie attendue :
expected = 44
Entrée :
long long limit = 50;

Sortie attendue :
long long expected = 44;
Entrée :
long limit = 50;

Sortie attendue :
long expected = 44;

Explication

Les termes pairs sont 2, 8 et 34. Leur somme est 44.

Exemple 2
Entrée :
limit = 1

Sortie attendue :
expected = 0
Entrée :
long long limit = 1;

Sortie attendue :
long long expected = 0;
Entrée :
long limit = 1;

Sortie attendue :
long expected = 0;

Explication

Le premier terme pair est 2, qui dépasse la limite.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Tu n’as besoin que des termes pairs de Fibonacci, pas de toute la suite.

Indice 2

Génère la suite jusqu’à ce que le terme suivant dépasse la limite et additionne les termes valides.

Indice 3

Fais attention à la borne quand la limite elle-même est un terme de Fibonacci.

Complexité attendue

temps O(log limit), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.