Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Suma de términos pares de Fibonacci

Suma los términos pares de Fibonacci que no superen un límite.

Lo que aprenderás

  • Generar términos de Fibonacci hasta un límite
  • Quedarse solo con los términos pares
  • Detener el bucle en el momento justo

Problema

Ver original (inglés)

Comienza la secuencia con 1 y 2. Cada término siguiente es la suma de los dos anteriores. Incluye solo los términos de valor par que no sean mayores que limit, y luego súmalos.

Implementa even_fibonacci_sum(limit).

Entrada

limit: El mayor valor de término que puede incluirse.

Salida

Devuelve la suma, o 0 si no hay términos elegibles.

Restricciones

0 ≤ limit ≤ 10¹⁵. El resultado cabe en un entero con signo de 64 bits.

Ejemplos

Ejemplo 1
Entrada:
limit = 50

Salida esperada:
expected = 44
Entrada:
long long limit = 50;

Salida esperada:
long long expected = 44;
Entrada:
long limit = 50;

Salida esperada:
long expected = 44;

Explicación

Los términos pares son 2, 8 y 34. Su suma es 44.

Ejemplo 2
Entrada:
limit = 1

Salida esperada:
expected = 0
Entrada:
long long limit = 1;

Salida esperada:
long long expected = 0;
Entrada:
long limit = 1;

Salida esperada:
long expected = 0;

Explicación

El primer término par es 2, que supera el límite.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Solo necesitas los términos pares de Fibonacci, no toda la secuencia.

Pista 2

Genera la secuencia hasta que el siguiente término supere el límite y suma los términos válidos.

Pista 3

Ojo con el borde cuando el límite en sí es un término de Fibonacci.

Complejidad esperada

tiempo O(log limit), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.