Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda