Programa da série Fibonacci em Java usando Loops & Recursão

Índice:

Anonim

O que é a Série Fibonacci?

Na série de Fibonacci, o próximo número é a soma dos dois números anteriores. Os primeiros dois números da série de Fibonacci são 0 e 1.

Os números de Fibonacci são significativamente usados ​​no estudo de tempo de execução computacional do algoritmo para determinar o maior divisor comum de dois inteiros. Na aritmética, a matriz de Wythoff é uma matriz infinita de números resultante da sequência de Fibonacci.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21,… 

Código Java usando For Loop

// Usando For Looppublic class FibonacciExample {public static void main (String [] args){// Configure para o número de elementos que você deseja na Série Fibonacciint maxNumber = 10;número anterior int = 0;int nextNumber = 1;System.out.print ("Série Fibonacci de" + maxNumber + "números:");para (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Em cada iteração, estamos atribuindo um segundo número* ao primeiro número e atribuindo a soma dos dois últimos* números para o segundo número* /soma int = número anterior + número seguinte;anteriorNumber = nextNumber;nextNumber = sum;}}}
Resultado:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Lógica do programa:
  • previousNumber é inicializado em 0 e nextNumber é inicializado em 1
  • For Loop itera por meio de maxNumber
    • Exibir o número anterior
    • Calcula a soma de previousNumber e nextNumber
    • Atualiza novos valores de previousNumber e nextNumber

Código Java usando While Loop

Você também pode gerar a Série Fibonacci usando um

While loop em Java.
// Usando While Looppublic class FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Série Fibonacci de" + maxNumber + "números:");int i = 1;enquanto (i <= maxNumber){System.out.print (previousNumber + "");soma int = número anterior + número seguinte;anteriorNumber = nextNumber;nextNumber = sum;i ++;}}}
Resultado:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

A única diferença na lógica do programa é o uso do WHILE Loop para imprimir os Números de Fibonacci

Série Fibonacci com base na entrada do usuário

// série fibonacci baseada na entrada do usuárioimport java.util.Scanner;public class FibonacciExample {public static void main (String [] args){int maxNumber = 0;número anterior int = 0;int nextNumber = 1;System.out.println ("Quantos números você deseja em Fibonacci:");Scanner scanner = novo Scanner (System.in);maxNumber = scanner.nextInt ();System.out.print ("Série Fibonacci de" + maxNumber + "números:");para (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * Em cada iteração, estamos atribuindo um segundo número* ao primeiro número e atribuindo a soma dos dois últimos* números para o segundo número* /soma int = número anterior + número seguinte;anteriorNumber = nextNumber;nextNumber = sum;}}}
Lógica do programa:

A lógica é a mesma de antes. Em vez de codificar o número de elementos a serem exibidos na Série Fibonacci, o usuário é solicitado a escrever o número.

Código Java usando recursão

// Usando recursãopublic class FibonacciCalc {public static int fibonacciRecursion (int n) {if (n == 0) {return 0;}if (n == 1 || n == 2) {return 1;}retornar fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Série Fibonacci de" + maxNumber + "números:");para (int i = 0; i  Resultado: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Lógica do programa:

Uma função recursiva é aquela que tem a capacidade de chamar a si mesma.

fibonacciRecursion ():

  1. Pega um número de entrada. Verifica 0, 1, 2 e retorna 0, 1, 1 de acordo porque a sequência de Fibonacci começa com 0, 1, 1.
  2. Quando a entrada n é> = 3, a função se chamará recursivamente. A ligação é feita duas vezes. Vejamos um exemplo para a entrada de 4.
fibonacciRecursion (4)It will recursively call fibonacciRecursion function for values 2 and 3fibonacciRecursion (2) \\ call for value 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1fibonacciRecursion (3) \\ It will call for 1 and 2fibonacciRecursion (1) = 1fibonacciRecursion (2) \\ It will call for 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1

Agora o resultado é adicionado 0 + 1 + 1 + 0 + 1 = 3