Biorąc pod uwagę dodatnią liczbę całkowitą n
, wykonaj następujące czynności (i wypisz każdy etap):
- zacznij od listy zawierającej
n
kopien
. - wykonaj następujące
n
czasy: - na tym
i
etapie stopniowo zmniejszaj pozycjęi
th listy, aż do jej osiągnięciai
Tak więc, na przykład, jeśli dana n
jest 4
, to zacząć [4,4,4,4]
, a następnie w pierwszym etapie trzeba [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. Na drugim etapie, trzeba [1,3,4,4]
, [1,2,4,4]
. Na trzecim etapie masz [1,2,3,4]
. Na czwartym kroku nic się nie dzieje.
Więc twoje wyjście jest [[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]]
.
Dowolny rozsądny format wejścia / wyjścia jest dozwolony.
Obowiązują standardowe luki . To jest golf golfowy : wygrywa odpowiedź z najmniejszą liczbą bajtów.
code-golf
array-manipulation
Leaky Nun
źródło
źródło
i
th jest zawsze indeksowany 1.Odpowiedzi:
Galaretka , 9 bajtów
Wypróbuj online!
W jaki sposób?
* Może być łatwiej zobaczyć, co się dzieje z produktem kartezjańskim używanym powyżej przy innym wejściu:
źródło
R ,
838274 bajtyWypróbuj online!
Zamiast podwójnej pętli for
while
wystarczy pętla: znajdujemy pierwszy indeks, w którym lista jest większa niż indeks, i tam się zmniejszamy.K
maTRUE
gdziekolwiekN[i]>i
,which(K)
zwraca prawdziwe indeksy, a my bierzemy pierwsze z[1]
.źródło
Galaretka , 12 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 75 bajtów
Wypróbuj online!
źródło
APL + WIN, 54 bajty
Monity o wprowadzenie liczby całkowitej
Wysyła macierz z każdym rzędem reprezentującym wynik każdego kroku, np. Dla 4:
źródło
Galaretka , 11 bajtów
Wypróbuj online!
Jak to działa
źródło
Python 3 , 91 bajtów
Wypróbuj online!
źródło
Java (OpenJDK 8) , 135 bajtów
Wypróbuj online!
Wyjaśnienie:
Kredyt:
-8 bajtów dzięki Jonathanowi Frechowi !
-16 bajtów dzięki Kevin Cruijssen !
-1 bajt dzięki Okx !
źródło
import java.util.*;
Jest częścią bajtów-count obawiam się. A kod @ JonathanFrech można pograć w golfa o 4 kolejne bajty, wstawiając,i=0
por[]
i zmieniając<-~a
na<=a
. ( Spróbuj go online. 144 bajtów ) (i zmieniłem~-i
abyi-1
uczynić go bardziej czytelnym ..)import java.util.*;
za pomocąjava.util.Arrays x=null;
ix.fill
ix.toString
. (Należy pamiętać, że obecne rozwiązanie ma 155 bajtów z wymaganymimport java.util.*;
.)for(;r[i-1]>i;
raczej niżfor(;r[i-1]!=i;
.++i<=a
w golfai++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Wypróbuj online 135 bajtówHaskell,
69 67 6563 bajtówDefinicja rekurencyjna:
Dzięki Laikoni za 2 bajty!
źródło
map
to dwa bajty krótsze ze zrozumieniem listy: Wypróbuj online!PHP, 153 bajtów
Wypróbuj online!
Kod
Spróbuję obniżyć bajty lub zakończyć funkcję rekurencyjną
Wyjaśnienie
źródło
Python 2 ,
8076 bajtówWypróbuj online!
Trochę marnowanie dwóch
print
stwierdzeń, ale w tej chwili nie mogę wymyślić lepszego sposobu.źródło
Python 2 , 70 bajtów
-2 bajty dzięki @LeakyNun
-2 bajty dzięki @JonathanFrech
Wypróbuj online!
źródło
(I-1)
->~-I
i=I
i zmniejszanie.Java (JDK 10) , 112 bajtów
Wypróbuj online!
źródło
J ,
1715 bajtówWypróbuj online!
Wyjaśnienie
źródło
Siatkówka , 49 bajtów
Wypróbuj online! Wyjaśnienie:
Przekształć dane wejściowe w jednoargumentowe.
Utwórz listę n kopii,
i,n
gdziei
jest indeks kopii.Nie drukuj niczego (po zakończeniu pętli).
Pętla, aż wzór się nie zmieni.
Tymczasowo usuń
i
s i przekonwertuj jen
na dziesiętne i wyjmij.Weź pierwszą pozycję na liście, której wartość przekracza indeks, i zmniejsz ją.
źródło
Python 3 ,
706765 bajtówWypróbuj online!
Wersja bez golfa:
źródło
C (clang) ,
131141 bajtówWypróbuj online!
Działa to dla wszystkich
n
do 99. TIO obcina wyjście. Może obsługiwać dowolnie większen
, zmieniając rozmiar tablicy,m
gdy pozwala na to pamięć.Poniższe jest ograniczone do n = 1..9, ale jest znacznie krótsze
C (clang) ,
8992 bajtówWypróbuj online!
Zaktualizowano: Zmodyfikowano, aby uniknąć zależności od inicjalizacji statycznej
źródło
static/global initialization because multiple test cases
nie jest dozwolone, ponieważ funkcje muszą być wywoływane więcej niż jeden raz.m[j]--,p()
dop(m[j]--)
i zapisać bajt.Clojure, 132 bajty
Miałem nadzieję, że będzie to krótsze ...
Mniej stanowy, ale dłuższy przy 141 bajtach:
źródło
Python 3, 101 bajtów
Prawdopodobnie mógłbym grać w golfa z drukowaniem, ale jestem z dala od komputera i nie jestem całkowicie pewien zasad Pythona 2 dotyczących ustawiania zmiennej do drukowania. Zaktualizuję później, kiedy dojdę do komputera lub jeśli ktoś wyjaśni w komentarzach.
źródło
K (ngn / k) ,
3432 bajtyWypróbuj online!
źródło