Bonjour a tous j'ai du mal a comprendre la récursion lorsque plusieurs appels a la fonction sont fait.
par exemple je comprends ceci :
void fun(int n)
{
if (n <= 0)
{
return;
}
n -= 1;
fun(n);
}
On appel a fun jusqu'a ce n soit plus petit ou égal a 0 mais comment cela fonctionne-t-il lorsque l'on appelle la fonction 2x ?
void fun(int n)
{
if (n <= 0)
{
return;
}
n -= 1;
fun(n);
fun(n - 1);
}
Ici de ce que j'ai compris fun(n - 1) ne devrais jamais être éxécutée car fun(n) aura déja été appelée plusieurs fois et n sera plus petit ou égal a 0 cepandant ca n'a pas l'air de fonctionner comme ca et le 2ème appel a fun() se fait quand même.
Quelqu'un pourrai-t-il m'expliquer svp ?