Учитывая строго положительное целое число n , выполните следующие действия:
- Создайте массив A с n 1 s.
- Если A имеет только один элемент, завершите. В противном случае, начиная с первого элемента, замените каждую пару A его суммой, оставив последний элемент как есть, если длина A нечетная, и повторите этот шаг.
Выходные данные должны содержать состояние A после каждого шага в порядке от первого шага до последнего. Использование стандартных лазеек запрещено. Это задача кода-гольфа , поэтому выигрывает решение с наименьшим количеством байтов на каждом языке.
Контрольные примеры
Каждая строка в выходных данных этих примеров является состоянием. Вы можете выводить через любой разумный формат.
Входные данные: 1
[1]
Входные данные: 4
[1, 1, 1, 1]
[2, 2]
[4]
Входные данные: 13
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 1]
[8, 5]
[13]
Входные данные: 15
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 3]
[8, 7]
[15]
code-golf
arithmetic
Эрик Outgolfer
источник
источник
Ответы:
05AB1E , 7 байтов
Попробуйте онлайн!
источник
MATL , 10 байт
Попробуйте онлайн!
Как это устроено
источник
Python 3 , 57 байт
Попробуйте онлайн!
Python 2 , 51 байт
Попробуйте онлайн!
Всего -6 байт благодаря tsh
Рекурсивная функция. Для каждого шага он формирует список степеней
2
, так что сумма меньше или равна заданному целому числу. Затем он добавляет остаток, если он больше, чем0
.источник
def f(i,j=1):l=i//j*[j]+[i%j][:i%j];print(l);i>j and f(i,j*2)
; Python 2 55 байт:def f(i,j=1):l=i/j*[j]+[i%j][:i%j];print l;i>j>f(i,j*2)
i>j
не работал в моем предыдущем решении, и я забыл попробовать его потом.Желе , 6 байт
Попробуйте онлайн!
источник
R 65 байт
-1 байт благодаря Джузеппе.
Попробуйте онлайн!
%/%
%%
k=2^i
n%/%k
k
n%%k
Здесь я использую
T
вместоk
, так как он инициализируется какTRUE
преобразованный в 1. Мне все еще нужно печатать+T
вместо того,T
чтобы избежать вектораTRUE
s в выводе.источник
+T
корочеT+0
Pyth , 10 байт
Попробуйте онлайн!
-1 байт благодаря FryAmTheEggman
источник
JavaScript (V8) , 109 байт
Попробуйте онлайн!
источник
Wolfram Language (Mathematica) ,
5554 байтаПопробуйте онлайн!
Наконец,Sow
/Reap
бьет альтернативу!Возвращает одноэлементный список, содержащий список шагов.
источник
K (ок) ,
1517 байтПопробуйте онлайн!
источник
J , 20 байт
Попробуйте онлайн!
-2 байта благодаря Bubbler
источник
[:
и()
.Желе , 6 байт
-1 байт благодаря Эрику Аутгольферу .
Попробуйте онлайн!
источник
JavaScript, 55 байт
Попробуйте онлайн!
Это в основном гольф-версия следующих кодов:
источник
Japt
-R
, 13 байтПопытайся
источник
Брахилог , 17 байт
Попробуйте онлайн!
Как бы ужасно это ни было, я все еще чувствую себя немного умно при использовании
.ẉȮ
: очевидный способ напечатать что-то, затем проверить, будет ли его длина 1ẉ₂l1
,ẉ₂~g
илиẉ₂≡Ȯ
, где≡
необходим последний в последнем, потому чтоẉ₂
объединяет его ввод и вывод до того, как он их напечатает, иȮ
предварительно ограничен списком длины 1, поэтому объединение завершается неудачно, если входные данные не являются списком длины 1. В конце предиката эту функциюẉ₂
можно обойти, однако используя выходную переменную вместо подпискиẉ
:.ẉȮ
сначала объединяет ее вход с выходной переменной, затем печатает выходную переменную, и только после этого объединяет выходную переменную сȮ
.источник
Stax , 10 байт
Запустите и отладьте его
Процедура:
Аннотированный источник:
источник
Древесный уголь , 19 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Использует формат вывода Charcoal по умолчанию, который состоит из одного числа в строке, с подрешетками с двойным интервалом друг от друга. Объяснение:
источник
Perl 5 , 46 байт
Попробуйте онлайн!
Выход разделен пробелом.
источник
Perl 6 , 38 байт
Попробуйте онлайн!
Есть некоторый ярлык для частичного ротора, который я сейчас не помню ...
Объяснение:
источник
Haskell , 75 байт
Попробуйте онлайн!
Работает в обратном порядке из списка
[n]
пока не достигнет списка только из них.Идя вперед, я мог бы получить 80 байт , используя
chunksof
отData.List.Split
:Попробуйте онлайн!
источник
Ом v2 , 8 байт
Попробуйте онлайн!
Если вывод в научной записи разрешен, в противном случае:
Ом v2 , 9 байт
Попробуйте онлайн!
источник
Gaia , 12 байт
Попробуйте онлайн!
источник