Wprowadzenie
Jako przykład weźmy liczbę 7
. Następnie powielamy to i umieszczamy między nimi 7 spacji. Otrzymujemy to:
7_______7
Następnie będziemy zmniejszać liczbę, dopóki nie pozostaną wolne miejsca. Otrzymujemy następujące liczby 7:
7_______7
6543210
Następnie po prostu łączymy oba z nich, więc:
7_______7
6543210 becomes
765432107
To będzie wyjście dla N = 7 .
Wygląda łatwo, prawda? Teraz weźmy N = 12 . Ponownie wstawiamy 12 spacji między dwiema liczbami, co daje nam:
12____________12
Następnie rozpoczynamy zmniejszanie:
12____________12
111098765432
I to w końcu daje nam:
1211109876543212
Jak widać część opadająca kończy się na 2, a nie na 0 .
Zadanie
Biorąc pod uwagę liczbę całkowitą większą niż 1 , wypisz malejącą sekwencję, jak pokazano powyżej.
Przypadki testowe
Input Output
2 2102
3 32103
4 432104
5 5432105
6 65432106
7 765432107
8 8765432108
9 98765432109
10 10987654321010
11 111098765432111
12 1211109876543212
13 13121110987654313
14 141312111098765414
15 1514131211109876515
20 201918171615141312111020
99 9998979695949392919089888786858483828180797877767574737271706968676665646362616059585756555453525150499
100 1009998979695949392919089888786858483828180797877767574737271706968676665646362616059585756555453525150100
To jest golf golfowy , więc wygrywa zgłoszenie z najmniejszą liczbą bajtów!
Odpowiedzi:
CJam,
1110 bajtówWypróbuj online.Zakłada, że na wejściu znajduje się końcowy znak nowej linii. (Dzięki @ jimmy23013 za zapisanie bajtu.)
Wyjaśnienie
Na końcu każdej linii jest wygląd stosu w tym momencie (
4
na przykładzie).źródło
Julia, 30 bajtów
Jest to anonimowa funkcja, która przyjmuje liczbę całkowitą i zwraca ciąg znaków. Aby go wywołać, przypisz go do zmiennej.
Konstruujemy i łączymy malejącą sekwencję od n -1 do 0 i bierzemy pierwszą n znaków z otrzymanego ciągu. Dołączamy i dołączamy to z wejściem jako ciąg.
Sprawdź wszystkie przypadki testowe online
źródło
Haskell, 44 bajty
Przykład użycia:
f 14
->"141312111098765414"
.źródło
JavaScript (ES6),
5552 bajtówEdycja: Zapisano 3 bajty dzięki @WashingtonGuedes.
źródło
.keys()
..keys()
jest jak.reduce
. Odpowiednie narzędzie do pracy, ale zawsze znajdziesz coś, co da się lepiej w tym konkretnym przypadkuPython 2,
82725853 bajtówWypróbuj tutaj!
Dzięki @Alex za nauczenie mnie, że
repr(x)
=`x`
oszczędza mi mnóstwo bajtów!źródło
Pyth, 11 bajtów
Dwie alternatywne wersje, z których wszystkie mają również 11 bajtów ( westchnienie ):
Wypróbuj tutaj.
źródło
Japt, 13 bajtów
Przetestuj online!
Jak to działa
źródło
Galaretka, 10 bajtów
Wypróbuj online!
Jak to działa
źródło
Retina , 98
110Najdłuższa jak dotąd odpowiedź: - /
Wypróbuj online.
źródło
Vitsy, 35 bajtów
Ponieważ Vitsy nie wie, jak tworzyć ciągi z liczb, zaimplementowałem wyszukiwanie długości liczby w miejscach dziesiętnych w drugim wierszu.
Wyjaśnienie:
Wypróbuj online!
Tryb pełny dla loli:
źródło
L
, naprawiając to teraz (jednak nie zaktualizuje pytania).public static void
metodami. Główny kończy program po jego zakończeniu. Jeśli chodzi o to, jak to robi, instrukcje są przechowywane w rodzajuArrayList<ArrayList<String[]>>
, w którym każda linia toString[]
. Każda metoda jest podzielona w nowym wierszu według sposobu ładowania pliku, co powoduje oddzielenie głównej metody od wszystkich innych metod.String
s są instrukcjami,String[]
s są metodami (pierwsza to metoda główna), aArrayList<String[]>
s są klasami (pierwsza to klasa główna), prawda?Pure Bash, 49
Lub:
Bash + coreutils, 48
źródło
12
, następnie pierwsze 12 znaków11..0
(lub111098765432
), a następnie12
Siatkówka, 63 bajty
Jest jeszcze sporo miejsca na grę w golfa ...
Wypróbuj online!
źródło
$0
w$0$*
opcjonalny, a także, gdy poprzedzający Token jest dosłowny, który nie jest liczbą (jak twoiy
s są) ... widząc to mogę faktycznie realizować to.MATL , 15 bajtów
EDYCJA (20 maja 2016 r.) Kod w linku używa
Xz
zamiast, zXv
powodu ostatnich zmian w języku.Wypróbuj online!
źródło
Java, 93 bajty
źródło
Rubinowy, 41 bajtów
źródło
Droga Mleczna 1.6.5 ,
2725 bajtówWyjaśnienie
Stosowanie
źródło
I'::%{K£BCH=}<OHG<+<;+!
do pliku zakodowanego w UTF-8, ale to nie działa.Perl 6 , 31 bajtów
Stosowanie:
źródło
Perl, 43 + 2 = 45 bajtów
Cieszę się, że nie użyłem
reverse
i anisubstr
:Wymaga
-pl
flag.Jak to działa:
źródło
C,
130125 bajtówWersja bez golfa (z wyjaśnieniem):
Pośrednie rzutowanie z double na int in
h=floor(...)
pozwalało na użycie#define p(x)
5 bajtów.Przetestuj na ideonie.
źródło
R, 67 bajtów (jako funkcja)
R, 63 bajty (dane wejściowe z STDIN)
źródło
Brainfuck, 265 bajtów
Działa to tylko z liczbami <10
Wypróbuj wersję golfową tutaj :
Nie golfił. Wypróbuj tutaj :
źródło
,>>++++++[<++++++++>-]<[-<->]<
To może odjąć 48 z krótszą długością kodu