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

задание 23 номер 215

Агаркова: Здравствуйте. Решаю задание рекурсией. У меня получается ответ 26, а на сайте 38. Что я делаю не так в программе? Код ниже [pre2] def f(x,y, k): if x>y or k>7: return 0 if x==y: return k<=7 if x<y: return f(x+1, y, k+1)+f(x*2,y, k+1)+f(x-3,y, k+1) print (f(1,10,0)) [/pre2] пробовала решать экселем, но не смогла организовать третью операцию. Раньше задачи были только на увеличение или только на уменьшение чисел. А тут есть команды на увеличение и третья команда на уменьшение.

Ответов - 1

Поляков: Вы ставите лишнее условие: траектория программа может перейти конечное число 10 и вернуться обратно за счет операции вычитания. Нужно так: [pre2] def f(x,y, k): if k>7: return 0 if x==y: return 1 return f(x+1, y, k+1)+f(x*2,y, k+1)+f(x-3,y, k+1) print (f(1,10,0))[/pre2]



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