fork(2) download
  1. <?php
  2. function fibonacci($n) {
  3. static $cache = array();
  4. static $prox = 3;
  5. $cache[0] = 0;
  6. $cache[1] = 1;
  7. $cache[2] = 1;
  8. if ($n < $prox) {
  9. echo "cache -> "; //está aqui só para mostrar que entrou aqui
  10. return $cache[$n];
  11. }
  12. for ($i = $prox; $i <= $n; $i++) {
  13. $cache[$i] = $cache[$i - 1] + $cache[$i - 2];
  14. }
  15. echo $i - $prox . " passos -> "; //está aqui só para mostrar que entrou aqui
  16. $prox = $n + 1;
  17. return $cache[$n];
  18. }
  19. echo fibonacci(5) ."\n";
  20. echo fibonacci(20) ."\n";
  21. echo fibonacci(100) ."\n";
  22. echo fibonacci(10) ."\n";
  23. echo fibonacci(100) ."\n";
  24. echo fibonacci(120) ."\n";
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
3 passos -> 5
15 passos -> 6765
80 passos -> 3.5422484817926E+20
cache -> 55
cache -> 3.5422484817926E+20
20 passos -> 5.358359254991E+24