Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adrian.campana

Fibonacci sem recursividade

Recommended Posts

Olá pessoal, sou novo na comunidade e preciso de uma ajudinha.

Comecei a pouco tempo na programação, preciso fazer um código da sequência de Fibonacci sem usar recursividade. Eu fiz um usando recursividade e ficou assim:

 

<?php

function fib($n){
    if($n == 0){
    return 0;
}     elseif($n == 1 || $n == 2) {
    return 1;
}    else {
    return fib($n-1)+fib($n-2);
}
}
for($i=0; $i<=15; $i++){        
    echo fib($i)."<br>";
}

?>

 

Agora preciso fazer a mesma coisa, mas sem usar recursividade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Segue o code de Fibonacci procedural:
 

<form method="get">
	<label for="numeroLimite">Número Limite: </label>
	<input type="number"  name="numeroLimite" id="numeroLimite"><br>
	
	<input type="submit" name="submit" value="Rodar">
</form>
<?php	
	$numLimit = $_GET["numeroLimite"];
	$fib = [ 0, 1 ];#Primeiro e segundo elementos na cadeia de Fibonacci
	
	if($_GET['submit'] == "Rodar")
	{
		for( $i = 0 ; $i+2 < $numLimit ; $i++)#"Mágica" de Fibonacci.
		{
			$fib[$i+2] =  $fib[$i] + $fib[$i+1]; 
		}
		for($i = 0; $i < $numLimit; $i++)#Imprimir parciais.
		{
			echo ($i+1)."º -> ".$fib[$i]."<br>";
		}
		echo "<br>Resultante: ".end($fib);#Imprimir resultante.
	}
?>
<br><br><hr>
<form method="get">
	<input type="submit" value="Zerar">
</form>
<!-- @fred_melo_07 -->

Espero que ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por YanSilveira
      Galera, estou com uma dúvida muito grande em como posso implementar uma função de uma PG (Progressão Geométrica) via recursividade de  cauda, visando achar o e-nésimo termo da mesma. (C#).
      Alguém pode me ajudar?
       
      Obrigado desde Já.
    • Por Matheus Guermandi Ribeiro
      tabela Chamado
          idChamado
          dataChamado,
          statusChamado,
          descricaoChamado,
          tituloChamado,
          idChamadoPai,
          idRemetente,
          idDestinatario
       
      function historicoChamado($idChamdoFilho) {
          static $ArrayIdChamadoPai = array();
          global $link;
          $cmdAux = "SELECT
                 idChamadoPai
                 FROM Chamado 
                 WHERE idChamado = '$idChamdoFilho'";
          $resultAux = mysqli_query($link, $cmdAux);
          $dadosAux = mysqli_fetch_array($resultAux);
          $idChamadoPai = $dadosAux['idChamadoPai'];
          if ($idChamadoPai != NULL) {
              array_unshift($ArrayIdChamadoPai, $idChamadoPai);
              historicoChamado($idChamadoPai);
          } else {
              return $ArrayIdChamadoPai;
          }
      }
       
       
       
      Preciso que esse array retorno todos os idChamadoPai. Já tentei colocar o ArrayIdChamadoPai como global mais tbm não funciona. Quem puder ajudar salvaria muito 
    • Por alvorac
      Pessoal sou iniciante em mysql e to meio perdido, preciso fazer uma consulta entre duas tabelas PERFIL e Questoes, vou tentar explicar o caso :
       
      São 5 Tabelas:
      Series: Guardam 12 series do ensino fundamental ao ensino médio
      Tipo: Classificam as questões em niveis de dificuldade de 1 a 20, e um tempo medio que a questao deve ser respondida
      Questões: Uma matriz de questões distribuídas para cada ano e tipo
      Exemplo:
      Questão 1 + 1 = 1, TIPO:1 ANO: 1…Tipo N Ano N.

      Agora vem as tabelas auxiliares
      Disciplina: Guarda as disciplinas como matematica, portugues, …
      Perfil: (Essa tabela é o parametro para gerar os questionarios)guarda o total de questoes conforme a disciplina, considera-se que para um numero sequencial de questões normais, havera ou não uma correspondencia de uma questão extra, há uma tolerancia de erros, para cada disciplina, exemplo matematica pode errar uma de cada tipo, porem essas ligações pensei de fazer via programação.


      Exemplo: Matematica = Pode errar 1 vez, se o aluno responder uma questão do tipo 3 errada, sera substituida por outra do mesmo tipo. no segundo erro, termina a prova e encerra a resposta do questionario.

      Sobre o Questionario:
      Dado de parametros a Disciplina, tenho o perfil de questões para o questionário( DISCIPLINA, ANO e TIPO e suas respectivas quantidades de questões normais e questões extra), a SQL então deve retornar as questões que atendam as exigencias de QUANTIDADE (NORMAL E EXTRA) CONFORME Os TIPOS cadastrados em PERFIL.
       
      Minha tentativa foi com esse codigo (sem sucesso):
       
      SELECT COALESCE(CatParent.id, Questoes.id) id, COALESCE(CatParent.enunciado, Questoes.enunciado) enunciado, perfil.tipo_id FROM perfil JOIN Questoes ON perfil.tipo_id = Questoes.tipo_id and Questoes.ano_id = perfil.ano_id LEFT JOIN Questoes AS CatParent ON Questoes.tipo_id = CatParent.id ORDER BY RAND( ) group by id, enunciado, tipo_id Não sei como limitar a quantidade consideando o total de questões Normais e Questões extra de forma dinamica cada vez que ele busca tais questões, é possivel? como fazer?  ajudem por favor.
       
      Grato
       
       
      Demonstração em valores da Tabela Perfil , as questões e o Questionário resultado da consulta.


    • Por danield1591998
      Olá, construi um cronometro que funciona muito bem a base de JavaScript, ele funciona através de uma função recursiva que vai decrementando os segundos, minutos e horas...
      Entretanto quando eu clico em outra aba o relógio para e quando eu volto ele começa de onde tinha parado. Eu quero que ele continue contando o tempo mesmo que eu mude de aba. Como proceder?  
    • Por snowstormdelivery
      Estou praticando exercícios de recursão, mas eu notei que variáveis locais se repetem muito, enquanto uma iteração não faz isso.
      Isso prejudica o desempenho do programa, de alguma forma?

      Eu só postei aqui, porque no Google está difícil de compreender. Se alguém puder ser mais claro, eu agradeço.

      Como saber quando devo usar recursão ou iteratividade?

      Olhem o as variáveis repetidas:
       

       
      Atualização: Li mais, mas continuo com alguns conceitos vagos. Quem quiser dar sua opinião, vai me ajudar!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.