Другие ответили на ваш вопрос, но, поскольку он вам не чужд, вы можете прочитать о рекурсии и рекурсивных функциях.Есть некоторые ошибки, которые могут вас поймать, если вы не в курсе.
Хуже всего то, что вы можете быстро переполнить свой стек, если вы слишком глубоки, или если ваша функция стек выделяет много вещей.Если вы планируете использовать рекурсивную реализацию, убедитесь, что ваша рекурсия ограничена и что вы выделяете минимум в стеке.
Возможно, вы захотите рассмотреть итеративный подход - каждая рекурсивная проблема может быть решена итеративно с некоторымидумал.Обычно это тоже интересное упражнение.
ДжошЛивз сказал, что рекурсия быстрее, но часто это происходит не из-за необходимости выделять стек роста и настраивать регистры.Если ваша функция выполняет два или более вызовов самой себя для вычисления своего результата, то итеративное решение всегда быстрее.