Rekursion in C, Rekursionsbeispiel verstehen

Ich habe Probleme, dieses Beispiel zu verstehen. Ich kann nicht herausfinden, was nach einem bestimmten Punkt tatsächlich passiert.

Hier ist der Code, das Ergebnis soll 4 sein.

Ich kann sehen, dass es sich mehrmals selbst nennt, aber wie es tatsächlich zu dem Ergebnis von 4 kommt, entzieht sich mir gänzlich. Jede Hilfe wäre sehr dankbar.

#include <stdio.h>

int recursion(int i) 
{ 
  return (i>1 ? i - recursion(i/2) : 3);
} 

int main() 
{ 
  int number = 9; 
  printf("The result is %d\n", recursion(number)); 
  return 0;
}

bearbeiten: Vielen Dank, das klärt auf!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage