Skip to content

Instantly share code, notes, and snippets.

@renatorib
Last active February 20, 2020 17:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save renatorib/9871993 to your computer and use it in GitHub Desktop.
Save renatorib/9871993 to your computer and use it in GitHub Desktop.
Função em php que gera a Sequência de Fibonacci
<?php
/**
* Sequência de Fibonacci em PHP
* @author Renato Ribeiro <renato@lugri.com>
*
*/
//função que gera a sequência de fibonacci e retorna em array
function fibonacci($q, $zero = false){
if($q >= 2){
$f = ($zero) ? [0,1] : [1,1];
for($i = 2; $i < $q; $i++){
$f[$i] = $f[$i-1] + $f[$i-2];
}
return $f;
}
return ($q == 1) ? [1] : [];
}
//exibindo os primeiros 20 números da sequência de fibonacci, começando por 0
$fib = fibonacci(20, true);
foreach($fib as $v){
echo (end($fib) == $v) ? $v : $v.', ';
}
?>
@mikely-fernanda
Copy link

olá, gostaria de saber o que significa o ponto de interrogação na linha 11: $f = ($zero) ? [0,1] : [1,1];

@andretx
Copy link

andretx commented Jan 18, 2018

@mikely-fernanda isso é um if em linha.

exemplo:$r = (1 == $v) ? 'Yes' : 'No';

@tairamdasilva
Copy link

tairamdasilva commented Sep 23, 2019

*/Olá durante esse ano estive procurando por algo relacionado a esse assunto, depois de analisar algumas funções no PHP
e finalmente entender como funciona o laço for e tbm as functions, montei o seguinte código.
não contem arrays [ ] porém espero que ajude alguem que esteja com a mesma dificuldade que tive :)
*/

//============================

function fibonacci($fi) {
$v1=0;
$v2=1;
$v3=1;
for ($contador=0; $contador <= $fi; $contador++) {
if($contador <=1) {
$v3 = $contador;
}else{
$v3 = $v1 + $v2;
$v1 = $v2;
$v2 = $v3;
} $res = $v3+$v1;

    echo "$v3 + $v1 = $res  <br><br>";
}

} fibonacci (13);

//================================

// aqui dentro dos brackets ( ) vai o valor de sequencias que voce quer que apareça
//no caso solicitei que mostre apenas 13 sequencias após a linha do zero

//utilizei if else para iniciar a sequencia a partir do zero mostrando resultado

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment