Автор | Сообщение |
|
Отправлено: 20.03.22 08:32. Заголовок: 16-100
Добрый день, не могли бы помочь оптимизировать код, питон не в состоянии просчитать. Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: 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]. def F(n): if n<=3: return n+3 elif F(n-1)%2==0: return F(n-2)+n else: return F(n-2)+2*n s=0 for a in range (40,50+1): s=s+F(a) print (s)
|
|
|
Ответов - 1
[только новые]
|
|
|
| Администратор
|
Сообщение: 3397
|
|
Отправлено: 20.03.22 11:05. Заголовок: Здесь лучше реш9ать ..
Здесь лучше решать через динамическое программирование: F = [0]*(50+1) s = 0 for n in range(50+1): if n<=3: F[n] = n + 3 elif F[n-1] % 2 == 0: F[n] = F[n-2] + n else: F[n] = F[n-2] + 2*n if 40 <= n <= 50: s += F[n] print (s) А откуда такая интересная задача?
|
|
|