Составь программу с использованием рекурсивного алгоритма для вычисления значения функции G(n). Алгоритм задан..
Составь программу с использованием рекурсивного алгоритма для вычисления значения функции G(n).
Алгоритм задан следующими отношениями:
G(1) = 1;
G(n) = G(n - 1) + 2 + n, n> 1.
Вычисли значение функции G(9).
У меня получилось так:
def G(n):
if n==1:
return 1
elif n>1:
return G(n - 1) + 2 + n
else:
return "ошибка"
print(G (9))
Выводится 61.
Правильная ли это программа, если нет, то как правильно записать?
По дате
По рейтингу
Программа правильная, только вот для решения задачи рекурсия не требуется.
12345678
G(1) = 1 = 3 - 2
G(2) = G(1) + 4 = (3 + 4) - 2
G(3) = G(2) + 5 = (3 + 4 + 5) - 2
...
G(N) = (3 + ... + (N + 2)) - 2
# берём формулу суммы арифметической прогрессии из школьного учебника математики
G(N) = N * (3 + N + 2) / 2 - 2 = N * (N + 5) / 2 - 2
Вся программа:
12
def G(n): return n * (n + 5) // 2 - 2
print(G(9))
Больше по теме