Рекурсивный или саморекурсивный - это то, что я обычно называю.Просто будьте осторожны, чтобы не застрять в цикле, вызывающем себя, и в конечном итоге взорвав стек.
Также имейте в виду область действия вашей переменной.Объявите переменные как статические, если они должны быть общими для всех уровней рекурсии (или объявите их вне функции).Передайте переменные в функцию, если вам нужно, чтобы конкретная информация передавалась с одного уровня на другой.И наконец, используйте локальные переменные в функции, которые необходимы для сохранения состояния для текущего уровня рекурсии.Локальные переменные будут копировать в стек для каждого уровня рекурсии, который вы вызываете, и возвращаться к предыдущим значениям для каждой рекурсии, которая раскручивается.