С учетом ввода первого числа , а второе число (как положительные целые числа, нулевой exluded), определить , сколько способов вы могли бы сделать второй из первого, используя следующие действия: +1
, +2
и *3
. Операции просто применяются слева направо.
Примеры:
Вход:
1 2
. Выход:1
. То есть, вы могли бы получить2
только делать+1
, так что в одну сторону.Вход:
1 3
. Выход:3
. То есть, вы можете получить 3, выполнив+2
или+1+1
, или*3
Вход:
1 4
. Выход:4
.Вход:
2 6
. Выход:6
.Вход:
2 7
. Выход:9
.Вход:
1 10
. Выход:84
.
В случае, если нет способов, например 100 100
, или 100 80
, вывод есть 0
.
Вы также можете принять ввод в виде массива или строки с любым удобным разделителем.
Самое короткое решение выигрывает.
*3 +2 +1
столько раз, сколько захотите, а затем подать заявку,+1
чтобы добраться до 0.Ответы:
Pyth -
2624 байтаКажется, в Pyth есть ошибка, которая заставляет его принимать входные данные в неправильном порядке, но в любом случае это не должно иметь значения.
Тестовый пакет .
(
1 10
тайм-аут в сети, но работал на моем компьютере).источник
10
, но pyth - это slooooooowJavascript ES6,
4544 байтаПример работы:
источник
=B
и(B=)
(b
опущено специально) составляет 6 символов, и альтернатива -,b
3 раза передать рекурсивные вызовы, которые также являются 6 символами. Во всяком случае, хорошая работа.Pyth, 29 байт
Попробуйте онлайн!
Определяет функцию. Добавлено три байта в ссылку для вызова функции.
источник