Como Criar a Sequência de Fibonacci em PHP: Passo a Passo com Laços

O que você vai aprender neste tutorial

  • O que é a famosa Sequência de Fibonacci e como ela funciona.
  • Como estruturar a lógica de troca de variáveis (atual, último e penúltimo).
  • Como criar um script PHP moderno usando o laço de repetição for para gerar a série dinamicamente a partir da entrada do usuário.

O que é a Sequência de Fibonacci?

A sequência de Fibonacci é uma sucessão numérica infinita onde os dois primeiros termos são 0 e 1, e cada número subsequente é calculado pela soma dos dois números imediatamente anteriores a ele.

Essa é, sem dúvida, uma das questões de lógica de programação mais cobradas em entrevistas de emprego para desenvolvedores juniores. Entender como construí-la usando laços de repetição (como o laço FOR ou WHILE) é um divisor de águas no seu aprendizado de algoritmos.

Vamos visualizar a formação da série na prática:

  • Termo 1 = 0
  • Termo 2 = 1
  • Termo 3 = 1 + 0 = 1
  • Termo 4 = 1 + 1 = 2
  • Termo 5 = 2 + 1 = 3
  • Termo 6 = 3 + 2 = 5
  • ...e assim por diante.

💡 Curiosidade: A série de Fibonacci não vive apenas nos computadores. Ela possui proporções matemáticas fascinantes que aparecem frequentemente na natureza, desde a disposição das pétalas de uma flor até espirais de galáxias. Vale a leitura na Wikipédia sobre a Sequência de Fibonacci.

Como Fazer a Série de Fibonacci com Laços em PHP

Para transformarmos essa matemática em código PHP, precisamos que o usuário nos diga quantos termos ele quer ver. Inicialmente, sempre exibimos o 0 e o 1. Portanto, o usuário precisa digitar um número maior que 2 para a brincadeira fazer sentido.

A Lógica das Variáveis

Nós vamos utilizar três variáveis fundamentais para fazer o script "lembrar" dos números passados:

  • $atual - Vai armazenar o número atual que está sendo calculado.
  • $ultimo - Armazena o último número gerado pela série.
  • $penultimo - Armazena o número que veio antes do último.

O estado inicial delas, antes do laço começar, será:

$ultimo = 1;
$penultimo = 0;

Dentro do nosso laço, a mágica acontece nesta ordem exata:

  1. Calculamos o próximo número: $atual = $ultimo + $penultimo;
  2. Imprimimos o valor de $atual.
  3. O pulo do gato: Atualizamos as variáveis para a próxima rodada do laço. O antigo $ultimo passa a ser o $penultimo, e o $atual recém-calculado vira o novo $ultimo.

A Lógica está travando sua evolução? 🧠

Se você teve que ler a explicação das variáveis duas vezes, não se preocupe, é normal! A melhor forma de fixar algoritmos como o de Fibonacci é treinando offline, sem distrações. Baixe o Mega Pack Projeto Progressivo e tenha acesso vitalício a centenas de exercícios resolvidos passo a passo em PHP, JS, Python e mais.

Ver o Conteúdo do Mega Pack Completo

Código Completo: Gerador de Fibonacci em PHP

Abaixo, temos o código HTML para o formulário e o script PHP atualizado. Utilizamos a função intval() e o operador ?? para garantir que o código seja seguro e não gere erros no seu servidor moderno.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Gerador de Fibonacci - PHP Progressivo</title>
</head>
<body>
    <h2>Calculadora da Sequência de Fibonacci</h2>
    <form action="" method="get">
        <label for="number">Exibir até qual termo (maior que 2):</label><br>
        <input type="number" name="number" id="number" min="3" required />
        <input type="submit" value="Calcular" />
    </form> 
    <hr>

    <?php 
    // Verifica se o usuário enviou o número pelo formulário
    if (isset($_GET['number'])) {
        // Captura o valor, garantindo que seja um número inteiro seguro
        $n = intval($_GET['number']);
        
        // Verifica se o número atende ao requisito mínimo
        if ($n > 2) {
            $ultimo = 1;
            $penultimo = 0;
            
            echo "<h3>Os primeiros $n termos são:</h3>";
            // Exibe os dois primeiros termos fixos
            echo "0 <br> 1 <br>";
            
            // O laço começa em 1 e vai até $n - 2 (pois já exibimos 2 termos)
            for ($count = 1; $count <= $n - 2; $count++) {
                
                // Regra de negócio do Fibonacci
                $atual = $ultimo + $penultimo;
                echo $atual . "<br>";
                
                // Atualização de variáveis para a próxima iteração
                $penultimo = $ultimo;
                $ultimo = $atual;
            }
        } else {
            echo "<p style='color:red;'>Por favor, insira um número maior que 2.</p>";
        }
    }
    ?>
</body>
</html>

⚠️ Atenção ao detalhe técnico: Nossa variável de controle do for vai de 1 até $n - 2. Subtraímos dois do total justamente porque já imprimimos o 0 e o 1 manualmente fora do laço. Se não fizéssemos isso, a sequência teria dois números a mais do que o usuário pediu!

Nenhum comentário: