Série Fibonacci em Java: Como escrever e exibir Fibonnaci em Java
Publicados: 2020-07-29A sequência de Fibonacci recebe o nome do matemático italiano Leonardo Fibonacci. Ele introduziu esta série na Europa Ocidental com seu livro Liber Abaci em 1202. A cena matemática indiana viu a magia de Fibonacci em 200 aC, como evidenciado pelas obras de Pingala. Essa representação de números também ocupa um lugar especial nas esferas da codificação e da computação. Ao final deste explicador, você terá aprendido a escrever uma série de Fibonacci em Java.
A sequência inteira começa com 0 e 1, e cada número depois disso é a soma dos dois números que a precedem, por exemplo, 0, 1, 1, 2, 3, 5 e assim por diante. Existem duas maneiras principais de gerá-lo em JavaScript, a saber (i) usando iteração, ou seja, sem usar recursão, e (ii) usando recursão. Enquanto a abordagem iterativa leva um tempo linear para concluir a tarefa, você obtém a solução exponencialmente com a técnica recursiva. Agora, vamos nos aprofundar nos detalhes desses métodos um por um.
Leia: Python vs. Javascript Throwdown: Qual deles você deve preferir?
Índice
Escrevendo a série de Fibonacci em Java
Método 1: sem recursão
- Para Loop
Nesse caso, você deseja que o programa Java gere os primeiros n números de uma sequência de Fibonacci. Aqui está uma visão detalhada de como a iteração do loop 'for' funciona.
Primeiro, você inicializa os dois primeiros números da série. Então, For Loop somará os dois predecessores imediatos e imprimirá o valor. Este processo continuará até que os primeiros n números sejam exibidos. Como o programa já publicou 0 e 1 antes de iniciar a iteração, a condição For Loop é dada por n-2.
- Enquanto Loop
Ele segue uma lógica semelhante ao método For Loop, mas exige que os programadores sejam mais cuidadosos em sua aplicação. A instrução de fluxo de controle do loop 'while' executa o código repetidamente em uma condição booleana. Somente se a condição satisfizer, ou for verdadeira, o corpo do loop será executado. Além disso, a expressão de atualização incrementa a variável de loop. Por outro lado, sairemos do loop while se a condição for avaliada como falsa.

Leia: Arquitetura e componentes Java explicados
Vamos observar o código Java abaixo para entender melhor o While Loop:
Método 2: com recursão
Quando você está escrevendo a série Fibonacci em Java usando recursão, a função chama a si mesma direta ou indiretamente. É uma técnica básica de programação JavaScript, e a função é conhecida como função recursiva.
Algoritmos recursivos podem ajudá-lo a resolver problemas complexos com facilidade. Suponha que você queira imprimir os primeiros 'n' números da sequência de Fibonacci usando recursão. Você precisaria de um programa Java recursivo para gerar a série necessária. Aqui está a explicação passo a passo de tal implementação:
- O usuário daria a entrada
- For Loop seria aplicado ao loop até que cada iteração chame a função que retorna o número de Fibonacci na posição n. Seja fibonaccinumber (int n)
- Em seguida, a função se chamaria recursivamente e adicionaria os dois números de Fibonacci anteriores
Exemplos de séries de Fibonacci
Algumas instâncias da vida real da sequência de Fibonacci incluem as pétalas de uma flor, pinhas, galhos de árvores, espirais de conchas, entre muitas outras representações na natureza. Essa regra da Proporção Áurea dessa sequência matemática é inerente às características mais fundamentais do universo, como nossas moléculas de DNA e as espirais das galáxias.
Os métodos iterativos e recursivos descritos acima são implementações da relação de recorrência da série de Fibonacci. É dado por: F(n) = F(n-1) + F(n-2). Quando colocamos os valores-semente nesta relação, obtemos: F(0) = 0 e F(1) = 1. Para um determinado número, n, como você encontrará o n-ésimo número em uma série de Fibonacci? Vamos considerar este cenário com diferentes entradas.

- Para uma entrada n = 2, a saída seria 1
- Para uma entrada n=9, o resultado seria 34
Você pode construir sobre esses fundamentos para escrever uma função que retorne F(n). A função pode ser dada por: int fib (int n). A função fib() retornará 0 quando n = 0. Da mesma forma, se n = 1, fib() deve retornar 1. E a saída deve ser F(n-1) + F (n-2) para n > 1.
Caso de teste para a função fib()
Para uma sequência curta, viz. [0, 1, 1, 2, 3, 5, 8,…,55] e fib(5), o resultado seria 5. Assim, pretendemos retornar um elemento com índice 5 do array de sequência de Fibonacci . Vamos ver como isso se desenrolará usando o método iterativo.
- função fib(n){
deixe matriz = [0,1];
for (seja j = 2; j < n + 1; j ++) {
array.push(array[j-2] + array[j-1])
}
array de retorno[n]
}
Você pode notar que no trecho de código acima, atribuímos a variável array a [0,1] em vez de criar um array vazio. O loop começa a iterar a partir de j = 2 e continua adicionando números até que o comprimento da matriz seja n + 1. E dessa forma, retornamos o número no índice n. Portanto, a saída seria 3 para fib (4), 5 para fib (5) e assim por diante.
Se você for solicitado a resolver o mesmo problema usando recursão em uma entrevista, poderá usar o seguinte caso base.
- função fib(n){
se (n > 2){
retornar m
}
return fib(n-1) + fib (n-2)
}

Suponha que você chame fib() com o argumento 5. Aqui, a função fib continuará criando mais ramificações da árvore até atingir o caso base (o valor de n é menor que 2), após o qual começará a somar o retorno valores de cada ramo. As chamadas recursivas pararão somente quando um inteiro igual a 5 for impresso.
Vantagens da série de Fibonacci em Java
- Com um programa Javascript simples, você pode executar uma série de Fibonacci para exibir sem esforço uma série até um número ou termo específico
- A recursão entrega um código conciso e expressivo em Java
- Algoritmos iterativos fornecem uma excelente solução em produção, pois são limitados, mantendo o código robusto. Em contraste, algoritmos recursivos às vezes levam a erros de estouro de pilha
- A busca Fibonacci funciona em arrays ordenados e tem um desempenho melhor que a busca binária, principalmente quando a velocidade de acesso depende do local acessado anteriormente
- Estar familiarizado com a série Fibonacci permite que os alunos desenvolvam lógica enquanto trabalham em aplicativos modernos que exigem várias funcionalidades de front-end e back-end
Confira: Idéias de Projeto Java
Resumindo
Neste artigo, tentamos ajudá-lo a implementar uma série de Fibonacci em Java e entender a lógica por trás de diferentes métodos. Você pode representar números de Fibonacci usando recursão ou sem recursão (for loop e while loop). Depois disso, atualizamos os conceitos centrais por trás dos dois métodos e também discutimos suas vantagens.
Com todas essas informações, você pode atualizar seu conhecimento de algoritmos e escrever um código melhor. Seria melhor se você também tivesse um bom entendimento de estruturas de dados como arrays, árvores binárias, listas encadeadas, etc. Use o artigo acima como ponto de partida para sua revisão e desenvolva suas habilidades de programação!
Se você estiver interessado em aprender mais sobre Java, desenvolvimento de software full-stack, confira o PG Diploma in Full-stack do upGrad & IIIT-B, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos , e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.