Эта задача кода заставит вас вычислить количество способов достижения начиная с используя карты вида (с - неотрицательное целое число) и делая это за минимальное количество шагов.
(Обратите внимание, это относится к последовательности OEIS A307092 .)
пример
Так, например, потому что требуются три карты, и есть две отдельные последовательности из трех карт, которые отправят от до :
В результате или .
Пример значений
f(2) = 1 (via [])
f(3) = 1 (via [0])
f(4) = 1 (via [1])
f(5) = 1 (via [1,0])
f(12) = 2 (via [0,2] or [2,1])
f(13) = 2 (via [0,2,0] or [2,1,0], shown above)
f(19) = 1 (via [4,0])
f(20) = 2 (via [1,2] or [3,1])
f(226) = 3 (via [2,0,2,1,0,1], [3,2,0,0,0,1], or [2,3,0,0,0,0])
f(372) = 4 (via [3,0,1,0,1,1,0,1,1], [1,1,0,2,0,0,0,1,1], [0,2,0,2,0,0,0,0,1], or [2,1,0,2,0,0,0,0,1])
Вызов
Задача состоит в том, чтобы создать программу, которая принимает целое число в качестве входных данных и выводит количество различных путей от до через минимальное количество карт вида .
Это код-гольф , поэтому побеждает меньше байтов.
x -> x + x^j
^
символ обозначает возведение в степень. Это может быть также XOR (например, C использует^
для побитового XOR).