Заметки:
- Принцип "Разделяй и властвуй" — рекурсивный метод для решения задач.
- Принцип состоит из двух шагов: сначала определяем базовый случай (самый простой из всех). Потом делим и сокращаем до тех пор, пока не останется базовый случай.
- Алгоритм Евклида — если вы найдете самый большой участок, подходящий для этого размера, это будет самый большой участок, подходящий для всей фермы. (Речь идёт о задаче, когда прямоугольник надо разделить на одинаковые квадраты и чтобы они были максимально большими).
- Еще одна задача для рекурсии: просуммировать все числа в массиве. Базовый случай — 0 элементов и сумма равно 0 или 1 элемент и сумма равна этому элементу. Если не знаете с чего начать писать рекурсивный метод с массивами, то начинайте с базового случая. Рекурсивный случай — 1 число в списке + сумма остального списка.
- Зачем применять рекурсию, если можно использовать циклы? Есть языки без циклов в функциональном программировании.
Немного задач с примерами рекурсии: https://github.com/Ladgertha/Algorithms/blob/master/src/main/java/Recursive.kt