Algunos ejemplos:
function factorial($numero) {
if ($numero <= 1) {
return 1;
} else {
return $numero * factorial($numero - 1);
}
}
//Sería equivalente a lo siguiente:
function factorial5() {
return 5 * factorial4();
}
function factorial4() {
return 4 * factorial3();
}
function factorial3() {
return 3 * factorial2();
}
function factorial2() {
return 2 * factorial1();
}
function factorial1() {
return 1;
}
function fibonacci($n) {
if ($n <= 2) {
return 1;
} else {
return fibonacci($n - 1) + fibonacci($n - 2);
}
}
function anagrama($cadena, $inicio = "") {
//Si la longitud es uno, el anagrama es el mismo. Como es un nodo final imprimimos el resultado
if (strlen($cadena) == 1) {
echo $inicio . $cadena . "<br>";
return 1;
} else {
//Si no el anagrama será cada una de las letras más el anagrama del resto de la cadena
//Le pasamos como parámetro la cadena de inicio que será la letra más lo que nos hayan
//pasado como parámetro
$c=0;
for ($i = 0; $i < strlen($cadena); $i++) {
$letra = substr($cadena, $i, 1);
$c+=anagrama(substr($cadena, 0, $i) . substr($cadena, $i + 1), $inicio . $letra);
}
return $c;
}
}