| Cached recursion | Traditional recursion |
function factCached($n) {
static $cache = array();
if ( !isset($cache[$n]) ) {
if ( $n == 1 ) {
$cache[$n] = 1;
} else {
$cache[$n] = $n * factCached($n - 1);
}
}
return $cache[$n];
}
|
function fact($n) {
if ( $n == 0 ) return 1;
return $n * fact($n - 1);
}
|
| Start: 1268214159.6668; End: 1268214159.6693; Difference: 0.0024621486663818 | Start: 1268214159.6694; End: 1268214160.1294; Difference: 0.46000099182129 |
| Solution: 9.3326215443944E+157 | Solution: 9.3326215443944E+157 |