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

172
Visualizações
¿Cómo implementar una secuencia de Fibonacci en JavaScript?

Necesito implementar una secuencia de Fibonacci Оa través de una función para mi tarea. Y necesito implementar una función para que cada llamada posterior genere el siguiente número en la secuencia. Parece simple si pasa un argumento a la función, pero la asignación no me permite hacerlo. He implementado esta función con un argumento, el código se muestra a continuación:

 function helperFibonacci(n) { let number1 = 0; let number2 = 1; for (i = 0; i < n; i++) { let current = number1 + number2; number1 = number2; number2 = current; console.log(current); } } helperFibonacci(2);

Por favor, ayúdame a implementar esta función sin pasar un argumento. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Cambie number1 y number2 a variables globales y elimine el bucle.

 let number1 = 0; let number2 = 1; function helperFibonacci() { let current = number1 + number2; number1 = number2; number2 = current; console.log(current); } for (let i = 0; i < 10; i++) { helperFibonacci(); }

about 4 years ago · Juan Pablo Isaza Relatório

0

Prueba con este, funciona muy bien, ten una buena codificación :)

 function fib(n) { let fibList = []; if (n < 2) { fibList.push(0); } else { let prev = 0; let curr = 1; fibList.push(prev, curr); for (let i = 2; i < n; i++) { const next = prev + curr; prev = curr; curr = next; fibList.push(curr); } } console.log(fibList); }
about 4 years ago · Juan Pablo Isaza Relatório

0

OPCIÓN 1 USO DE LAS FUNCIONES DEL GENERADOR

Creo que la forma correcta de hacer esto es usar una función de Generador. Estas son funciones destinadas a devolver secuencias, están diseñadas para este tipo de situaciones en las que tiene una secuencia que puede calcular en función de una fórmula y desea obtener el siguiente valor a voluntad.

Entonces, digamos que tiene una fórmula simple para calcular el n-ésimo número de fibonacci

 function fibonacci(n = 0) { if (n < 0){ throw 'Fibonacci not defined for negative numbers'} if (n < 2) { return n}; return fibonacci(n - 1) + fibonacci(n - 2); }

entonces simplemente envuélvalo en una función de generador (usando la sintaxis de función *, tenga en cuenta el *)

 function* fibonacciGenerator() { var index = 0; while (true){ // yields the next fibonacci yield fibonacci(index++); } }

Luego puede usarlo creando un nuevo generador y llamando a la siguiente función para recuperar el siguiente elemento en la secuencia. Tenga en cuenta que while true aquí representa que la secuencia es infinita, es decir, nunca termina y puedo seguir obteniendo más y más elementos. Esto no se convierte en un bucle infinito debido a la palabra clave yield

 let fibonacciSequence = fibonacciGenerator(); fibonacciSequence.next().value; // 0 fibonacciSequence.next().value; // 1 fibonacciSequence.next().value; // 1 fibonacciSequence.next().value; // 2

Puede leer más sobre las funciones del generador aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function *

NO USAR LAS FUNCIONES DEL GENERADOR

Si no está familiarizado con las funciones del generador o no puede usarlas, puede hacerlo con una función normal y guardar el "estado". No recomiendo en absoluto guardarlo en una variable global porque se considera unamala práctica . Pero puedes crear un cierre.

Los cierres son como funciones con su propio alcance o entorno donde pueden tener variables.

 function fibonacciGenerator() { var index = 0; return function () { return fibonacci(index++); } }

entonces utilízalo

 let fibonacciSequence = fibonacciGenerator(); fibonacciSequence(); // 0 fibonacciSequence(); // 1 fibonacciSequence(); // 1 fibonacciSequence(); // 2

tenga en cuenta que la estructura es similar a la de los generadores, pero en su lugar tenemos funciones normales.

Puede leer más sobre los cierres aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures

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