Автор | Сообщение |
|
Отправлено: 15.01.23 18:43. Заголовок: 187 Задача. Неправильный ответ.
187) (А. Брейк) Лягушке нужно добраться до укрытия, избегая опасностей. У Лягушки есть три действия: 1. Короткий прыжок +2 2. Длинный прыжок +3 3. Избежать опасности 2n Первые два действия увеличивают позицию Лягушки на 2 и 3 соответственно. Третье действие можно применить только тогда, когда Лягушка находится в нечетной позиции — позиция N преобразуется в позицию 2N, позволяя Лягушке избежать опасности. Лягушка была замечена на расстоянии 3. Сколько существует различных путей Лягушки к укрытию в позиции 46, каждый их которых содержит не более двух действий «Избежать опасности»? Мой код: def f(a, b, k = 0): if a < b and (a % 2) == 0: return f(a + 2, b, k) + f(a + 3, b, k) if a < b and (a % 2) != 0 and k <= 2: return f(a + 2, b, k) + f(a + 3, b, k) + f(2 * a, b, k + 1) if a < b and (a % 2) != 0 and k > 2: return f(a + 2, b, k) + f(a + 3, b, k) return (a == b) print(f(3, 46)) В коде автора он поставил знак меньше вместо знака меньше или равно, хотя в условию сказано не более 2 => <=2. Ответ: 126801 вместо 126798.
|
|
|
Ответов - 2
[только новые]
|
|
|
| Администратор
|
Сообщение: 3830
|
|
Отправлено: 26.01.23 10:50. Заголовок: H1ghRate пишет: В ко..
H1ghRate пишет: цитата: | В коде автора он поставил знак меньше вместо знака меньше или равно, хотя в условию сказано не более 2 => <=2. |
|
При этом вы прыгнете в третий раз, что запрещено.
|
|
|
|
Отправлено: 26.01.23 18:49. Заголовок: Понял, спасибо!..
Понял, спасибо!
|
|
|
|