Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
|
1 2 3 |
F(n) = n + 3, при n ≤ 3 F(n) = F(n – 2) + n, при n > 3 и четном значении F(n-1), F(n) = F(n – 2) + 2· n, при n > 3 и нечетном значении F(n-1) |
Определите сумму значений, являющихся результатом вызова функции для значений n в диапазоне [40; 50].
Ответ:
Е. Джобс
Решение:
Решение от — Ижецкий Виталий Андеевич
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
mas = [-1] * int(1e6) def f(n): if n <= 3: return n + 3 if mas[n - 1] == -1: mas[n - 1] = f(n - 1) if mas[n - 2] == -1: mas[n - 2] = f(n - 2) if mas[n - 1] % 2 == 0: return mas[n - 2] + n return mas[n - 2] + 2 * n s = 0 for i in range(40, 51): s += f(i) print(s) |
Ответ: 8508
