Учитывая положительное целое число n
, сделайте следующее (и выведите каждый этап):
- начать со списка, содержащего
n
копииn
. - сделать следующее
n
время: - на
i
шаге постепенно уменьшатьi
запись списка до тех пор, пока она не достигнетi
Так, например, если данная n
является 4
, то вы начинаете с [4,4,4,4]
, а затем на первом этапе у вас есть [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. На втором этапе, у вас есть [1,3,4,4]
, [1,2,4,4]
. На третьем этапе у вас есть [1,2,3,4]
. На четвертом шаге ничего не делается.
Итак, ваш вывод [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Разрешен любой разумный формат ввода / вывода.
Применяются стандартные лазейки . Это код-гольф : ответ с наименьшим выигрышем.
code-golf
array-manipulation
Дрянная Монахиня
источник
источник
i
th всегда 1-индексирован.Ответы:
Желе , 9 байт
Попробуйте онлайн!
Как?
* Может быть проще увидеть, что происходит с декартовым произведением, использованным выше, с другим входом:
источник
R ,
838274 байтПопробуйте онлайн!
Вместо двойного цикла
while
for здесь достаточно цикла: мы находим первый индекс, где список больше индекса, и уменьшаем его там.K
имеетTRUE
где угодноN[i]>i
,which(K)
возвращает истинные показатели, и мы берем первое с[1]
.источник
Желе , 12 байт
Попробуйте онлайн!
источник
JavaScript (ES6), 75 байт
Попробуйте онлайн!
источник
APL + WIN, 54 байта
Запрашивает ввод целого числа на экране
Выводит матрицу, в которой каждая строка представляет результат каждого шага, например, для 4:
источник
Желе , 11 байт
Попробуйте онлайн!
Как это устроено
источник
Python 3 , 91 байт
Попробуйте онлайн!
источник
Java (OpenJDK 8) , 135 байт
Попробуйте онлайн!
Объяснение:
Кредит:
-8 байт благодаря Джонатану Фреху !
-16 байт благодаря Кевину Круйссену !
-1 байт благодаря Okx !
источник
import java.util.*;
Является частью байт-счетчик , я боюсь. И код @ JonathanFrech может быть обработан еще 4 байтами, поставив,i=0
послеr[]
и изменив<-~a
на<=a
. ( Попробуйте онлайн. 144 байта ) (и я изменил~-i
его,i-1
чтобы сделать его более читабельным ..)import java.util.*;
с помощьюjava.util.Arrays x=null;
иx.fill
иx.toString
. (Обратите внимание, что ваше текущее решение составляет 155 байтов с необходимымиimport java.util.*;
.)for(;r[i-1]>i;
а неfor(;r[i-1]!=i;
.++i<=a
вi++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Попробуйте онлайн 135 байтовHaskell,
69 67 6563 байтаРекурсивное определение:
Спасибо Лайкони за 2 байта!
источник
map
на два байта короче с пониманием списка: попробуйте онлайн!PHP, 153 байта
Попробуйте онлайн!
Код
Попробуем уменьшить байты или завершить рекурсивную функцию
объяснение
источник
Python 2 ,
8076 байтПопробуйте онлайн!
Немного расточительно иметь два
print
утверждения, но я не могу придумать лучшего способа в данный момент.источник
Python 2 , 70 байт
-2 байта благодаря @LeakyNun
-2 байта благодаря @JonathanFrech
Попробуйте онлайн!
источник
(I-1)
->~-I
i=I
и уменьшение.Java (JDK 10) , 112 байт
Попробуйте онлайн!
источник
J ,
1715 байтПопробуйте онлайн!
объяснение
источник
Сетчатка , 49 байт
Попробуйте онлайн!Объяснение:
Преобразовать ввод в унарный.
Создайте список из n копий,
i,n
гдеi
находится индекс копии.Не печатайте ничего (когда цикл заканчивается).
Цикл, пока рисунок не изменится.
Временно удалите
i
s и конвертируйтеn
s в десятичную и выведите.Возьмите первую запись списка, значение которой превышает ее индекс, и уменьшите ее.
источник
Python 3 ,
706765 байтПопробуйте онлайн!
Безголовая версия:
источник
C (лязг) ,
131141 байтПопробуйте онлайн!
Это будет работать для всех
n
до 99. TIO усекает вывод. Он может поддерживать произвольно большийn
размер, изменяя размер массива,m
если позволяет память.Следующее ограничено n = 1,9, но значительно короче
C (лязг) ,
8992 байтаПопробуйте онлайн!
Обновлено: изменено, чтобы избежать зависимости от статической инициализации
источник
static/global initialization because multiple test cases
не допускается, так как функции должны вызываться более одного раза.m[j]--,p()
в гольфp(m[j]--)
и сохранить байт.Clojure, 132 байта
Я надеялся, что это будет короче ...
Менее с состоянием, но длиннее на 141 байт:
источник
Python 3, 101 байт
Вероятно, я мог бы больше играть в гольф с печатью, но я далеко от своего компьютера и не совсем уверен в правилах Python 2 по установке переменной для печати. Я обновлю позже, когда доберусь до компьютера или если кто-то уточнит в комментариях.
источник
K (нгн / к) ,
3432 байтаПопробуйте онлайн!
источник