Способи потрапити на номер


10

З урахуванням введення першого числа , а друге число (як позитивні цілі числа, нульовий exluded), визначити , скільки способів ви могли б зробити другий з першого, використовуючи такі дії: +1, +2і *3. Операції просто застосовуються зліва направо.

Приклади:

  1. Вхід: 1 2. Вихід: 1. Тобто, ти міг дістатися лише 2тим самим +1, так що один спосіб.

  2. Вхід: 1 3. Вихід: 3. Тобто, ви могли отримати 3, зробивши +2або +1+1, або*3

  3. Вхід: 1 4. Вихід: 4.

  4. Вхід: 2 6. Вихід: 6.

  5. Вхід: 2 7. Вихід: 9.

  6. Вхід: 1 10. Вихід: 84.

Якщо немає способів, наприклад 100 100, або 100 80, вихід є 0.

Ви також можете взяти введення як масив або рядок з будь-яким зручним роздільником.

Виграє найкоротше рішення.


Схоже, це могло бути дупом, вибачте, якщо це так - не знайшло подібного питання.
nicael

4
А як щодо входів, на які відповідь має бути нескінченною? Наприклад, будь-який вхід, де перше ціле число від’ємне, тому що ви можете помножити на три, а потім збільшити назад до початкового числа і повторити стільки разів, скільки вам потрібно.
Пітер Тейлор

1
@Patrick: Хоча це має сенс. Починаючи з -1 і переходячи до 0, ви можете подати заявку *3 +2 +1стільки разів, скільки захочете, а потім подати заявку, +1щоб дістатись до 0.
Deusovi

Зауваження @ Peeter Fair, обмежене позитивними цифрами
nicael

Відповіді:


1

Pyth - 26 24 байт

Здається, що в Pyth є помилка, яка змушує вводити дані в неправильному порядку, але це не має значення.

/m.vj;+sdzs^Lc3"+1+2*3"S

Тестовий сюїт .

( 1 10вимкнено в Інтернеті, але працював на моєму комп’ютері).


Приурочено, з такою малою кількістю? Ага.
nicael

@nicael Так, я лише перевірив 1059K способів , але pyth - slooooooow
Maltysen

6

Javascript ES6, 45 44 байт

f=(a,b=B)=>a<(B=b)?f(a+1)+f(a+2)+f(a*3):a==b

Приклад виконання:

f(1,2)  -> 1
f(2,6)  -> 6
f(1 10) -> 84

1
Цікаве використання параметрів за замовчуванням, хоча, правда, тут не зберігаються жодні байти. =Bа (B=)(спеціально bпропущено) - 6 символів, а альтернатива ,b3 рази передає рекурсивні дзвінки, що також становить 6 символів. У всякому разі, хороша робота.
Патрік Робертс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.