Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

237
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!