Классная самостоятельная работа на рекурсию

В задачах этого листка нельзя использовать циклы. Читайте внимательно требования к оформлению решения.

A: Числа от 1 до n

Дано число n, напечатайте на экран все числа от 1 до n. Решение оформите в виде рекурсивной функции def Print(n), которая выводит не экран числа от 1 до n, не возвращает значения при этом. Ввод числа n осуществляется в основной программе, вывод чисел осуществляет функция Print.

Ввод Вывод
3
1 2 3

B: Произведение чисел от a до b

Даны два натуральных числа \(a\) и \(b\) (\(1\le a\le b\)), вычислите произведение всех чисел от \(a\) до \(b\) (включительно). Решение оформите в виде рекурсивной функции def Product(a, b), которая возвращает произведение чисел от \(a\) до \(b\) при помощи return, и ничего не выводит на печать. Ввод и вывод результата осуществляется в основной программе.

Ввод Вывод
3
5
60

C: Точная степень двойки

Дано натуральное число \(n\), если оно является точной степенью двойки, выведите YES, иначе выведите NO.

Решение оформите в виде рекурсивной функции def IsPowerOf2(n), которая возвращает True, если число является степенью двойки и False в противном случае.

Нельзя пользоваться циклами, возведением в степень, логарифмами, действительными числами.

Ввод Вывод
8
YES
3
NO

D: Сумма цифр числа

Дано натуральное число N. Вычислите сумму его цифр. Решение оформите в виде функции def SumOfDigits(n), которая получает на вход число и возвращает (при помощи return) сумму его цифр.

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

Ввод Вывод
179
17

E: Максимальная цифра числа

Дано натуральное число N. Вычислите наибольшую его цифру. Решение оформите в виде функции def MaxDigit(n), которая получает на вход число и возвращает (при помощи return) максимальную из его цифр.

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

Ввод Вывод
179
9

F: Палиндром

Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. Выведите YES или NO. Решение оформите в виде функции def IsPalindrome(s), возвращающей True или False.

При решении этой задачи нельзя пользоваться циклами, нельзя использовать срезы с шагом, отличным от 1.

Ввод Вывод
radar
YES
yes
NO