freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../sum-all-odd-fibonacci-numbers/index.md

5.9 KiB

title localeTitle
Sum All Odd Fibonacci Numbers Suma todos los números impares de Fibonacci

:triangular_flag_on_post: Recuerda usar Read-Search-Ask si te atascas. Tratar de emparejar el programa :busts_in_silhouette: y escribe tu propio código :pencil:

:checkered_flag: Explicación del problema:

Deberá reunir todos los números de Fibonacci y luego verificar los impares. Una vez que consigas los impares, los agregarás todos. El último número debe ser el número dado como parámetro si realmente resulta ser un número fuera de Fibonacci.

Enlaces relevantes

:speech_balloon: Sugerencia: 1

Para obtener el siguiente número de la serie, debe agregar el actual al anterior y le dará el siguiente.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 2

Para verificar si un número es par todo lo que tiene que verificar es si el number % 2 == 0 .

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 3

A medida que obtenga el siguiente impar, no olvide agregarlo a una variable global que se puede devolver al final. result += currNumber; Hará el truco.

intenta resolver el problema ahora

¡Alerta de spoiler!

señal de advertencia

¡Solución por delante!

:beginner: Solución de código básico:

function sumFibs(num) { 
    var prevNumber = 0; 
    var currNumber = 1; 
    var result = 0; 
    while (currNumber <= num) { 
        if (currNumber % 2 !== 0) { 
            result += currNumber; 
        } 
 
        currNumber += prevNumber; 
        prevNumber = currNumber - prevNumber; 
    } 
 
    return result; 
 } 
 
 // test here 
 sumFibs(4); 

:rocket: Ejecutar código

Explicación del código:

  • Cree una variable para mantener el registro de los números actuales y anteriores junto con el resultado que se devolverá.
  • Use un bucle while para asegurarse de que no revisemos el número dado como parámetro.
  • Usamos el modulo operando para verificar si el número actual es par o impar. Si es par, añádelo al resultado.
  • Complete el círculo de Fibonacci girando para obtener el siguiente número y luego intercambiar los valores.
  • Devuelve el resultado.

Enlaces relevantes

  • JS mientras bucle

:sunflower: Solución de código intermedio:

function sumFibs(num) { 
    // Perform checks for the validity of the input 
    if (num < 0) return -1; 
    if (num === 0 || num === 1) return 1; 
 
    // Create an array of fib numbers till num 
    const arrFib = [1, 1]; 
    let nextFib = 0; 
 
    // We put the new Fibonacci numbers to the front so we 
    // don't need to calculate the length of the array on each 
    // iteration 
    while((nextFib = arrFib[0] + arrFib[1]) <= num) { 
        arrFib.unshift(nextFib); 
    } 
 
    // Sum only the odd numbers and return the value 
    return arrFib.reduce((acc, curr) => { 
        return acc + curr * (curr % 2); 
    }); 
 } 
 
 // test here 
 sumFibs(4); 

:rocket: Ejecutar código

Explicación del código:

  • Crear una matriz de números de fibonacci hasta num .
  • Use el método reduce() para encontrar la suma de miembros impares de la matriz.
  • Devuelve la suma.

Enlaces relevantes

:clipboard: NOTAS PARA LAS CONTRIBUCIONES:

  • :warning: NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
  • Agregue una explicación de su solución.
  • Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada . :traffic_light:
  • Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( :warning: NO elimine ningún nombre de usuario existente )

Ver :point_right: Wiki Challenge Solution Template para referencia.