Мой вариант решений – начиная с 3-го занятия лежит в моём репозитории
Задачи
В репозитории создайте файл numbers.py. Решения всех задач этого задания выполняйте в нём.
Задача минимум: из списка задач решить хотя бы две на рекурсию и хотя бы одну на цикл. Задача максимум для ленивых: решить задачу 8 ферзей.
1
Напишите функцию fact1(n), которая получает на вход число n и возвращает его факториал. Функция должна использовать рекурсию.
2
Напишите функцию fact2(n), которая получает на вход число n и возвращает его факториал. Функция не должна использовать рекурсию.
3
Используя алгоритм Евклида, опишите функцию gcd1(a, b), которая получает на вход числа a и b и возвращает их наибольший общий делитель. Функция должна использовать рекурсию.
4
Используя алгоритм Евклида, опишите функцию gcd2(a, b), которая получает на вход числа a и b и возвращает их наибольший общий делитель. Функция не должна использовать рекурсию.
5
Опишите в файле list_tools.py (из третьего занятия) функцию min_rec(list), которая получает на вход список list и возвращает его наименьший элемент. Функция должна использовать рекурсию.
6
Опишите в файле list_tools.py функцию reversed(list), которая получает на вход список и возвращает новый список, составленный из его элементов, записанных в обратном порядке. Функция должна использовать рекурсию.
7 *
Если Вы ещё не решили задачу 8 ферзей из предыдущего занятия, попытайтесь её решить сейчас.
8
Опишите в файле list_tools.py функцию reversed2(list), которая получает на вход список и возвращает новый список, составленный из его элементов, записанных в обратном порядке. Функция не должна использовать рекурсию.