Echo dans la fonction ou Echo de la fonction
Bonjour,
J'ai pourtant un peu d'expérience avec PHP, mais quelque chose m'échappe.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function collatz($n, $a, $b, $i = 0) {
$i++;
if($i > 2000) {
echo "a";
}
elseif($n == 1) {
echo "b";
}
elseif($n > 1000000) {
echo "c";
}
else {
// Odd or even
if($n & 1) {
collatz($a * $n + $b, $a, $b, $i);
}
else {
collatz($n / 2, $a, $b, $i);
}
}
}
collatz(7, 3, 1); |
:fleche: Ce code retourne "a", "b" ou "c" (en l'occurrence ici "b").
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function collatz($n, $a, $b, $i = 0) {
$i++;
if($i > 2000) {
return "a";
}
elseif($n == 1) {
return "b";
}
elseif($n > 1000000) {
return "c";
}
else {
// Odd or even
if($n & 1) {
collatz($a * $n + $b, $a, $b, $i);
}
else {
collatz($n / 2, $a, $b, $i);
}
}
}
echo collatz(7, 3, 1); |
:fleche: La fonction retourne NULL.
Je ne comprends pas pourquoi la deuxième version ne fonctionne pas. Est-ce qu'il y a quelque chose avec les fonctions récursives qui m'échappe ?
Merci par avance pour votre aide !