Kodomo

Пользователь

Задачи

В репозитории создайте файл 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), которая получает на вход список и возвращает новый список, составленный из его элементов, записанных в обратном порядке. Функция не должна использовать рекурсию.