Как написать рекурсивную функцию harmonic(n)
, которая возвращает n-ое гармоническое число с точностью не менее 6 знаков после десятичной точки, используя формулу Hn = 1 + 1/2 + 1/3 + ... + 1/n?
Функция будет вызываться следующим образом:
n = int(input()) print(harmonic(n))
Важно! На проверку отправляем только функцию.
Формат входных данных
С клавиатуры вводится целое число n (1 ≤ n < 100) — аргумент функции harmonic
.
Формат выходных данных
Одно вещественное число — результат вызова функции.
Примечания
В этой задаче запрещено использовать циклы!
Примеры
ВХОДНЫЕ ДАННЫЕ 1 2 ВЫХОДНЫЕ ДАННЫЕ 1.0 1.5
Информатика 10 класс Рекурсивные функции рекурсивная функция гармоническое число функция harmonic информатика точность 6 знаков формула Hn Python без циклов входные данные выходные данные Новый
Чтобы написать рекурсивную функцию harmonic(n), которая вычисляет n-ое гармоническое число, мы будем использовать определение гармонического числа:
Рекурсивная функция будет работать следующим образом:
Теперь давайте напишем саму функцию:
def harmonic(n): if n == 1: return 1.0 else: return 1/n + harmonic(n-1)
Эта функция будет вызываться так:
n = int(input()) print(harmonic(n))
Теперь давайте разберем, как работает наш код:
Таким образом, мы получаем гармоническое число Hn с необходимой точностью, так как Python по умолчанию поддерживает вещественные числа с высокой точностью.