fork download
  1. <?php
  2. function fibonacci($n) {
  3. static $cache = array();
  4. if (isset($cache[$n])) {
  5. echo "cache "; //está aqui só para mostrar que entrou aqui
  6. return $cache[$n];
  7. }
  8. $a = 0;
  9. $b = 1;
  10. $c = 1;
  11. for ($i = 1; $i < $n ; $i++) {
  12. $c = $a + $b;
  13. $a = $b;
  14. $b = $c;
  15. }
  16. $cache[$n] = $c;
  17. echo "calculou "; //está aqui só para mostrar que entrou aqui
  18. return $c;
  19. }
  20. echo fibonacci(100) ."\n";
  21. echo fibonacci(10) ."\n";
  22. echo fibonacci(100) ."\n";
  23.  
  24. //https://pt.stackoverflow.com/q/104014/101
Success #stdin #stdout 0.02s 24412KB
stdin
Standard input is empty
stdout
calculou 3.5422484817926E+20
calculou 55
cache 3.5422484817926E+20