Форум » Динамическое программирование » Задача 5079 » Ответить

Задача 5079

yflzu@mail.ru: Ответ к задаче ошибочный (должно быть 1243550), так как в авторском решении две опечатки: [pre2]from functools import lru_cache @lru_cache def f( start, end, lastCmd ): if start == end: return 1 if start in [12,20] or start > end: return 0 count = f( start+1, end, 1 ) count += f( start+2, end, 2 ) if start not in [16,29] else 0 count += f( start*3, end, 3 ) if lastCmd != 3 and \ not(8<=start<=14) and \ not(16<=start<=29) else 0 return count print( f( 2, 38, 0 ) )[/pre2] Вместо 16 должно быть число 14, а вместо 8 - число 6, так как в искомое число попадают программы без 15.

Ответов - 1

Поляков: Да, спасибо. Ответ и решение вчера исправлены.



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