рекурсия в двух словах ..
int f4(int n) {
if (n == 1 || n == 0)
return n;
else
return n + f4(n - 1);
}
Ваш код утверждает, что когда n равно 1 или 0, просто возвращайте n, в противном случае добавьте n к результату функции.
, которая устанавливаетдо рекурсивного стека, где первый вызов n = 3, и это рекурсивно.при следующем вызове n = 2 и это повторяется.при следующем вызове n = 1, и он возвращает , а также остальную часть стека, ведущую к 1 + 2 + 3, что равно 6.