Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
No estoy seguro acerca de la sintaxis/métodos. Creo que mi código debería funcionar, pero no lo hace.

Solicitud: dado un número entero positivo, devuelve la suma de todos los números impares de Fibonacci que son menores o iguales que num. Los primeros dos números en la secuencia de Fibonacci son 1 y 1. Cada número adicional en la secuencia es la suma de los dos números anteriores. Los primeros seis números de la sucesión de Fibonacci son 1, 1, 2, 3, 5 y 8. Por ejemplo, sumFibs(10) debería devolver 10 porque todos los números impares de Fibonacci menores o iguales a 10 son 1, 1, 3 y 5.

El código que escribí para esto es:

 function sumFibs(num) { const arr = [1,1]; let sum = 0; for(let i = 2; i <= num; i++){ let queef = arr[i - 1] + arr[i - 2]; arr.push(queef); } for(let j = 0; j < arr.length; j++){ if(arr[j] % 2 != 0){ sum += arr[j]; } } return sum; } console.log(sumFibs(6));

pero obtengo 23 cuando debería ser 10, no estoy seguro de por qué esto no funciona porque siento que esto funcionaría en Java. También he intentado hacer arr[i] == queef pero eso tampoco funciona. Me estoy perdiendo algo o esto debería funcionar?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Bienvenida Bethany, disfruta de tu nuevo viaje de codificación. Si cambia la línea 4 en su código a:

 for(let i = 2; i < num; i++){

vuelve 10

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que tu error radica en

 for(let i = 2; i <= num; i++){

Creo que está generando una cantidad de números hasta num en lugar del valor en sí. Prueba con algo como esto (traté de mantener tu estilo):

 function sumFibs(num) { if (num === 1) return 1; const arr = [1,1]; let sum = 2; for(let i = 2; i <= num; i++){ let queef = arr[i - 1] + arr[i - 2]; arr.push(queef); if(arr[i] % 2 != 0 && queef < num){ sum += arr[i]; } } return sum; } console.log(sumFibs(6));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe ser < num en el primer ciclo for. Dado que los índices de matriz comienzan desde 0 y no desde 1 , cuando escribe <= 6 , se crea una matriz con 7 números.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda