5.9 KiB
title | localeTitle |
---|---|
Sum All Odd Fibonacci Numbers | Suma todos los números impares de Fibonacci |
Recuerda usar Read-Search-Ask
si te atascas. Tratar de emparejar el programa y escribe tu propio código
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
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
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
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!
¡Solución por delante!
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);
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
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);
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
NOTAS PARA LAS CONTRIBUCIONES:
- 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 .
- Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( NO elimine ningún nombre de usuario existente )
Ver
Wiki Challenge Solution Template
para referencia.