Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Gerar Sequência de Fibonacci em Java: Exemplos com For, While e Recursão

O que é a Série de Fibonacci em Java?

A série de Fibonacci é uma sequência onde cada número é igual à soma dos dois anteriores. Em Java, a série tradicionalmente começa com 0 e 1:

0, 1, 1, 2, 3, 5, 8, 13, 21, …

Além de sua intriga matemática, a sequência de Fibonacci é frequentemente usada em análise de algoritmos — por exemplo, na estimativa do tempo de execução de procedimentos recursivos e no cálculo do máximo divisor comum.

Série de Fibonacci Usando Loop For

// Usando loop for
public class FibonacciExample {
    public static void main(String[] args) {
        int maxNumber = 10; // Número de termos
        int previous = 0;
        int current = 1;
        System.out.print("Série de Fibonacci de " + maxNumber + " números:");
        for (int i = 1; i <= maxNumber; i++) {
            System.out.print(previous + " ");
            int next = previous + current;
            previous = current;
            current = next;
        }
    }
}

Saída:

Série de Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Lógica:

Série de Fibonacci Usando Loop While

// Usando loop while
public class FibonacciWhileExample {
    public static void main(String[] args) {
        int maxNumber = 10;
        int previous = 0;
        int current = 1;
        System.out.print("Série de Fibonacci de " + maxNumber + " números:");
        int i = 1;
        while (i <= maxNumber) {
            System.out.print(previous + " ");
            int next = previous + current;
            previous = current;
            current = next;
            i++;
        }
    }
}

Saída:

Série de Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Série de Fibonacci Baseada em Entrada do Usuário

import java.util.Scanner;
public class FibonacciUserInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Digite o número de termos: ");
        int maxNumber = scanner.nextInt();
        int previous = 0;
        int current = 1;
        System.out.print("Série de Fibonacci de " + maxNumber + " números:");
        for (int i = 1; i <= maxNumber; i++) {
            System.out.print(previous + " ");
            int next = previous + current;
            previous = current;
            current = next;
        }
        scanner.close();
    }
}

Lógica: A mesma lógica iterativa se aplica, mas a contagem de termos é fornecida pelo usuário.

Série de Fibonacci Usando Recursão

// Implementação recursiva
public class FibonacciRecursion {
    public static int fibonacci(int n) {
        if (n == 0) return 0;
        if (n == 1 || n == 2) return 1;
        return fibonacci(n - 1) + fibonacci(n - 2);
    }

    public static void main(String[] args) {
        int maxNumber = 10;
        System.out.print("Série de Fibonacci de " + maxNumber + " números: ");
        for (int i = 0; i < maxNumber; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Saída:

Série de Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Recursão Explicada:

  1. Casos base: n == 0 retorna 0; n == 1 || n == 2 retorna 1.
  2. Caso recursivo: fibonacci(n) = fibonacci(n-1) + fibonacci(n-2).
  3. Cada chamada se divide em duas sub-chamadas, espelhando a definição clássica.

Embora a recursão ofereça uma expressão matemática limpa, ela incorre em tempo exponencial para n grande. Use memoização ou métodos iterativos para código crítico de desempenho.

Java

  1. Java Hello World: Seu Primeiro Programa
  2. Variáveis e Literais em Java: Guia Completo
  3. Entendendo Expressões, Instruções e Blocos em Java
  4. Classes e Objetos em Java: Guia Prático
  5. Classes e Métodos Abstratos em Java: Guia Completo
  6. Dominando Classes Aninhadas e Internas em Java: Tipos, Exemplos e Boas Práticas
  7. Java throw vs throws: Dominando Tratamento de Exceções com Exemplos Práticos
  8. Dominando Autoboxing e Unboxing em Java: Exemplos Práticos e Boas Práticas
  9. Programa Java para Determinar se um Número é Primo
  10. Programa Java para Identificar Números de Armstrong Usando Loop For