Рекурсия в C, понять пример рекурсии

У меня проблемы с пониманием этого примера. Я не могу понять, что на самом деле происходит после определенного момента.

Вот код, результат должен быть 4.

Я могу видеть, что он вызывает себя несколько раз, но как это на самом деле приводит к результату 4, полностью ускользает от меня. Любая помощь будет принята с благодарностью.

#include 

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;
}

редактировать: Большое спасибо, это проясняет!

Ответы на вопрос(6)

Ваш ответ на вопрос