Sequência de Fibonacci em JavaScript

Neste tutorial de JS, vamos aprender como gerar a sequência, e qualquer termo, da série de Fibonacci, usando laços FOR e WHILE em JavaScript.

A Sequência de Fibonacci


Assim como a PA (Progressão Aritmética), é uma sequência de números, formada por uma regras bem simples.

O primeiro número da série é 0.
O segundo é 1.

A partir daí, o próximo termo é sempre a soma dos dois anteriores. Logo:
Terceiro termo = 0 + 1 = 1
Quarto termo   = 1 + 1 = 2
Quinto termo   = 1 + 2 = 3
Sexto termo     = 2 + 3 = 5
Sétimo termo   = 3 + 5 = 8
Oitavo termo   = 5 + 8 = 13
...

Ela é de extrema importância na Matemática e aparece de maneira assustadora na Natureza, vale a pena uma pesquisa!

Série de Fibonacci em JavaScript

Crie um script que pede ao usuário um termo qualquer da série de Fibonacci e ele exiba tal termo.

O termo que o usuário quer ver será armazenado na variável termo, o número da sequência em numero. Além disso, temos que ter duas outras variáveis, que vão armazenar os dois últimos números da sequência: a ultimo e a penultimo.

Primeiro, precisamos tratar o caso que a pessoa digite termo 1 ou 2.
Nesse caso, basta fazer termo-1 .
Se ela tiver digitado 1, retorna 0. Se tiver digitado 2, retorna o valor 1.

Acima do termo 2, vamos entrar no laço for.
O próximo termo da sequência é:
numero = ultimo + penultimo

Agora, precisamos atualizar os valores de ultimo e penultimo:
penultimo = ultimo;
ultimo = numero


Veja como ficou:
Código HTML:
<!DOCTYPE html>
<html>
 <head>
   <title>Apostila JavaScript Progressivo</title>
   <script type="text/javascript" src="script.js"></script>
 </head>
 <body>
   Exibir até o termo: <input id="numero" type="number"> <br />
   <button onclick="fibonacci()">Exibir</button><br />
   <div id='resposta'></div>
 </body>
</html>
Código JavaScript:
function fibonacci(){
  var termo = parseInt(document.getElementById('numero').value);
  var resposta = document.getElementById('resposta');
  var penultimo=0, ultimo=1;
  var numero;

  if(termo<=2)
   numero = termo-1;
  else
   for(var count=3 ; count<=termo ; count++){
    numero = ultimo + penultimo;
    penultimo = ultimo;
    ultimo = numero;
   }

  resposta.innerHTML=numero;
}
Resultado:


Exibir o termo:




Fibonacci com laço WHILE

function fibonacci(){
  var termo = parseInt(document.getElementById('numero').value);
  var resposta = document.getElementById('resposta');
  var penultimo=0, ultimo=1;
  var numero;

  if(termo<=2)
   numero = termo-1;
  else{
   count=3;
   while(count<=termo){
    numero= ultimo + penultimo;
    penultimo = ultimo;
    ultimo=numero;
    count++;
   }
  }

  resposta.innerHTML=numero;
}


Exercício de JavaScript

Agora, em vez de exibir o termo, faça um script que printe na página todos os números da sequência de Fibonacci, até o termo escolhido pelo usuário.

Código: na apostila!
Resultado:

Exibir até o termo:



Nenhum comentário:

Postar um comentário