Форум » Динамическое программирование » Тип 23 № 189 выдаёт неверный ответ » Ответить

Тип 23 № 189 выдаёт неверный ответ

L4043: [pre2]a = [] def f(start,end): global a if start == end: return 1 if start < -40 or start > 40: return 0 if start+2 not in a and start-3 not in a and abs(start+2)<40 and abs(start-3)<40: a.append(start+2) a.append(start-3) return f(start+2,end)+f(start-3,end) if start+2 not in a and abs(start+2) < 40: a.append(start+2) return f(start+2,end) if start-3 not in a and abs(start-3)<40: a.append(start-3) return f(start-3,end) return 0 print(f(1,30),sorted(a)) [/pre2]

Ответов - 1

Поляков: У вас траекторий много, а вы все в один массив добавляете. Вот возможное решение: [pre2] def f( way, end ): last = way[-1] return 0 if abs(last) > 40 or way.count(last) > 1 else \ 1 if last == end \ else f( way+[last+2], end ) + f( way+[last-3], end ) print( f( [1], 30 ) ) [/pre2]



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