Форум » Рекурсивные процедуры и функции » Задание егэ » Ответить

Задание егэ

Crshhhh00: (№ 4128) (А. Богданов) Алгоритм вычисления значения функции F(n), где n – целое число, задан следующими соотношениями: F(0) = 0 F(n) = 1, когда 1 ≤ n < 3, F(n) = F(n - 1) + F(n - 2), когда n ≥ 3. Определите четыре последние цифры числа F(47). Здравствуйте, вот такая программа [pre2]def f(n): if n==0: return 0 if n>=1 and n<3: return 1 if n>=3: return f(n-1) + f(n-2) print(f(49)) [/pre2] проблема в том, что значения выше 30 вычисляются долго, а f(49) могу никогда и не дождаться, как мне ускорить процесс?

Ответов - 3

cabanov.alexey: [pre2] from functools import * @lru_cache(None) def f(n): if n==0: return 0 if n>=1 and n<3: return 1 if n>=3: return f(n-1) + f(n-2) print(str(f(49))[-4:]) [/pre2]

aln1947: Приветствую, Алексей Михайлович! А я только, что задал Вам вопрос по этой задаче! Извините, не знал этот ВАш ответ. Сечас попробую, С уважением, А.Л.

aln1947: Спасибо большое!!! 16.99 - получилось! from functools import * @lru_cache(None) def f(n): if n==0: return 0 if n>0 and n<3: return 1 if n>=3: return f(n-1) + f(n-2) print(str(f(47))[-4:])




полная версия страницы