Jako wartość wejściową weź dodatnią liczbę całkowitą . Zacznij od i kilkakrotnie zwiększaj o największą moc całkowitą z dziesięciu tak, że i .
Powtarzaj do i zwróć listę wszystkich wartości pośrednich , w tym zarówno początkowego i końcowego .
Podczas tego procesu wzrost będzie początkowo ograniczany przez pierwszą nierówność, a dopiero później przez drugą; wzrost przybierze formę początkowego okresu „ekspansji”, podczas którego jest zwiększane o coraz większe moce, po czym następuje okres „kontraktu”, w którym jest zwiększany przez coraz mniejsze moce w celu „powiększenia” na prawidłowy numer.
Przypadki testowe
1 => [1]
10 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
321 => [1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 20, 30, 40, 50, 60, 70, 80, 90,
100, 200, 300, 310, 320, 321]
1002 => [1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 20, 30, 40, 50, 60, 70, 80, 90,
100, 200, 300, 400, 500, 600, 700, 800, 900,
1000, 1001, 1002]
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź (w bajtach).
Odpowiedzi:
Haskell ,
72686463 bajtyWypróbuj online!
Dzięki Sriotchilism O'Zaic za -4 bajty!
Stosowanie
Wyjaśnienie
źródło
(^)
ma wyższy priorytet niż(+)
nawiasy wokół(^)
wyrażenia. To samo dotyczy(!)
i(:)
pred.length.show.min c$t-c
można skrócić dolength(show.min c$t-c)-1
. Funkcje anonimowe są dopuszczalne, więc możesz zrezygnować z prowadzenia,f=
jak wyjaśniono w naszym przewodniku po regułach gry w golfa w Haskell .c!t=c: if t>c then (c+10^(length(show.min c$t-c)-1))!t else []
. Pozwala to zastosować tę wskazówkę, aby zaoszczędzić jeszcze kilka bajtów: Wypróbuj online!JavaScript (ES6), 50 bajtów
Wypróbuj online!
W jaki sposób?
Teoria
Następujące kroki są powtarzane, ażn = 0 :
Realizacja
'10'
'10'
źródło
k
czegoś zupełnie innego niż w opisie prowokacji (w istocie swojejn
jest mieszanką OPn
ik
i Twójx
jest ichi
.)Python 2 , 61 bajtów
Wypróbuj online!
źródło
Perl 6 ,
4841 bajtówWypróbuj online!
Wyjaśnienie:
źródło
APL (Dyalog Unicode) , 30 bajtów SBCS
Anonimowa ukryta funkcja prefiksu. Drukuje liczby na osobnych liniach na standardowe wyjście.
Wypróbuj online!
{
}∘1
⍺=⍵
⍺
⋄
jeszcze:⎕←⍵
⍺-
⍵,
10⍟
⌊
piętro te⌊/
minimum tych10*
dziesięć podniesionych do potęgi tego⍵+
⍺∇
źródło
05AB1E , 15 bajtów
Port @PaulMutser „s (pierwszego) Haskell odpowiedź , więc upewnij się, aby go upvote !!
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Zwraca liczby rozdzielane znakiem nowej linii.
Jeśli to musi być lista, musiałbym dodać 3 bajty:
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Galaretka , 19 bajtów
Wypróbuj online!
źródło
Wolfram Language (Mathematica) , 51 bajtów
Wypróbuj online!
źródło
Partia, 131 bajtów
Pobiera dane wejściowe jako parametr wiersza polecenia i wysyła listę liczb do STDOUT. Wyjaśnienie:
Zacznij od
n=1
ii=1
reprezentujący siłę 10.Pomnóż
i
przez 10, jeślin
osiągnie następną potęgę 10.Podaj aktualną wartość
n
.Powtórz, dopóki
i
można go dodaćn
bez przekraczania wartości wejściowej.Przywróć poprzednią wartość
n
i podzieli
przez 10.Jeśli
i
nie jest zerem wtedy spróbować dodaći
don
ponownie.źródło
R ,
6765 bajtów-2 bajty dzięki Giuseppe
Dość proste. Zabiera zestaw potęg 10 o wartości większej niż to, co byłoby potrzebne w odwrotnej kolejności
i
.(Wolałbym używać
i=10^rev(0:log10(k))
zamiast tego,i=10^(k:0)
ponieważ ten ostatni jest nieefektywny obliczeniowo, ale golf to golf!).Następnie w pętli while stosuje warunki
i
i przyjmuje pierwszą (tj. Największą); aktualizujen
i dołącza do danych wyjściowychWypróbuj online!
źródło
T
zamiastn
; powinno to być 2, ale nie sądzę, żeTRUE
jest to akceptowalne wyjściek=1
, więc ustawiliśmyo=+T
. Spróbuj!o=1
i uzyskać ten drugi bajt.Galaretka , 12 bajtów
Wypróbuj online!
źródło
Pip , 27 bajtów
Wypróbuj online!
W pseudokodzie:
Jestem bardzo zadowolony z trików golfowych, które mogłem zastosować, aby skrócić ten algorytm. Inicjując, aktualizując i drukując elementy w nagłówku pętli, uniknąłem konieczności używania nawiasów klamrowych dla korpusu pętli. Prawdopodobnie istnieje algorytm golfisty.
źródło
Japt , 18 bajtów
Spróbuj
źródło
C # (interaktywny kompilator Visual C #) ,
123122 bajtówWypróbuj online!
źródło
Prolog (SWI) , 142 bajty
Wypróbuj online!
Wyjaśnienie nadchodzi jutro czy coś
źródło