Skip to content

Instantly share code, notes, and snippets.

@belushkin
Last active September 26, 2018 16:25
Show Gist options
  • Save belushkin/62beded835e0e4b0641432fdb8edac21 to your computer and use it in GitHub Desktop.
Save belushkin/62beded835e0e4b0641432fdb8edac21 to your computer and use it in GitHub Desktop.
<?php
// Regular recursion
function factorial ($n)
{
if ($n == 1 ) {
return 1;
}
return $n * factorial($n-1);
}
// Tail recursion
function tail_factorial($n)
{
function loop($acc, $n)
{
if ($n == 0) {
return $acc;
} else {
return loop($acc * $n, $n - 1);
}
}
return loop(1, $n);
}
echo factorial(100), "\n";
echo tail_factorial(100), "\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment