1. Рекурсивный факториал:
```python
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
```
2. Рекурсия: числа Фибоначчи:
```python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
```
3. Хвостовая рекурсия (эмуляция через цикл):
```python
def factorial_tail(n):
result = 1
for i in range(2, n + 1):
result *= i
return result
```
1. Напишите функцию для возведения числа в степень рекурсивно.
2. Реализуйте рекурсивную функцию для нахождения наибольшего элемента в списке.
3. Используя рекурсию, создайте функцию, которая считает сумму всех элементов списка.
4. Реализуйте функцию, которая печатает все числа от N до 1 рекурсивно.
1. Напишите рекурсивную функцию, которая определяет, является ли строка палиндромом.
2. Реализуйте функцию, вычисляющую сумму цифр числа с помощью рекурсии.
3. Создайте функцию для поиска файла в папке и всех её подпапках (рекурсивно).
1. Что такое базовый случай в рекурсии?
2. Чем отличается рекурсивное решение от итеративного?
3. Какие плюсы и минусы у рекурсии?
4. Почему важно избегать глубокой рекурсии?
5. Что такое стек вызовов и как он связан с рекурсией?