Wyzwanie:
Dane wejściowe: dodatnia liczba całkowita
Wydajność:
Utwórz listę z zakresu i połącz ją ze sobą w łańcuch (tzn. będzie łańcuchem ).12345678910111213
Teraz wyprowadzamy trójkąt, używając prefiksów lub sufiksów tego ciągu, w jednej z następujących czterech orientacji opartych na wejściowej liczbie całkowitej:
- Jeśli , wyślij go w kształcie trójkąta ◣
- Jeśli , wyślij go w kształcie trójkąta ◤
- Jeśli , wyślij go w kształcie trójkąta ◥
- Jeśli , wyślij go w kształcie trójkąta ◢
Przykład:
Dane wejściowe:
Ponieważ , kształt będzie ◤. Oto trzy możliwe prawidłowe dane wyjściowe:
12345678910111213 11111111111111111 12345678910111213
1234567891011121 2222222222222222 2345678910111213
123456789101112 333333333333333 345678910111213
12345678910111 44444444444444 45678910111213
1234567891011 5555555555555 5678910111213
123456789101 666666666666 678910111213
12345678910 77777777777 78910111213
1234567891 8888888888 8910111213
123456789 999999999 910111213
12345678 11111111 10111213
1234567 0000000 0111213
123456 111111 111213
12345 11111 11213
1234 1111 1213
123 222 213
12 11 13
1 3 3
Zasady konkursu:
- Jak widać na trzech prawidłowych wyjściach powyżej, ważny jest tylko prawidłowy kształt i użycie wszystkich cyfr we właściwej kolejności . Oprócz tego możesz swobodnie używać prefiksów lub sufiksów; odwraca / odbija; druk ukośny; itd. itd. Dozwolone jest dowolne z sześciu możliwych wyników dla każdego kształtu (patrz przypadek testowy poniżej, aby zobaczyć wszystkie prawidłowe wyniki oparte na kształcie). Pozwala to na używanie języków z wbudowanymi rotacjami, ale te bez niego mogą również stosować alternatywne podejście polegające na stosowaniu prefiksów w odpowiednim rozmiarze od góry do dołu lub używania prefiksów dla dwóch kształtów, ale sufiksów dla dwóch pozostałych kształtów . Wybór najbardziej odpowiednich opcji wyjściowych dla twojego języka jest częścią procesu gry w golfa. :)
- Dane wejściowe mają być dodatnią liczbą całkowitą. Dla po prostu wyprowadzamy .
1
- Dozwolona jest dowolna liczba wiodących / końcowych znaków nowej linii / spacji, pod warunkiem, że drukuje gdzieś na ekranie właściwy trójkąt (bez pionowych ani poziomych ograniczników!).
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
Dane wejściowe:
Wszystkie możliwe prawidłowe dane wyjściowe:
12345 54321 12345 54321 11111 55555
1234 5432 2345 4321 2222 4444
123 543 345 321 333 333
12 54 45 21 44 22
1 5 5 1 5 1
Wejście:
Wszystkie możliwe wyjścia:
123456 654321 123456 654321 111111 666666
12345 65432 23456 54321 22222 55555
1234 6543 3456 4321 3333 4444
123 654 456 321 444 333
12 65 56 21 55 22
1 6 6 1 6 1
Wejście:
Wszystkie możliwe wyjścia:
1 1 7 7 7 1
12 21 67 76 66 22
123 321 567 765 555 333
1234 4321 4567 7654 4444 4444
12345 54321 34567 76543 33333 55555
123456 654321 234567 765432 222222 666666
1234567 7654321 1234567 7654321 1111111 7777777
Wejście:
Wszystkie możliwe wyjścia:
1 1 8 8 8 1
12 21 78 87 77 22
123 321 678 876 666 333
1234 4321 5678 8765 5555 4444
12345 54321 45678 87654 44444 55555
123456 654321 345678 876543 333333 666666
1234567 7654321 2345678 8765432 2222222 7777777
12345678 87654321 12345678 87654321 11111111 88888888
Wejście:
Tylko możliwe wyjście:
1
Wejście:
Wszystkie możliwe wyjścia:
12 21 12 21 11 22
1 2 2 1 2 1
n==13
, czy najwyższy rząd może być'33333333333333333'
(lub równoważnie'31211101987654321'
)?mod 4
są ścisłymi parami tego wyzwania. Dlatego nie możesz zmieniać czterech kształtów dla czterechmod 4
przypadków. Niemniej jednak dobre pytanie.Odpowiedzi:
JavaScript (ES6),
9389 bajtówZwraca macierz znaków.
Wypróbuj online!
Alternatywny wzór (ten sam rozmiar):
Wypróbuj online!
Skomentował
Podsumowanie kształtu
Poniżej znajduje się podsumowanie kształtu podstawowego (wygenerowanego przez zagnieżdżonen mod 4
map
pętle) i kształtu końcowego (posort
) dla każdego :źródło
Python 2 , 94 bajty
Wypróbuj online!
źródło
Japt , 8 bajtów
Zwraca tablicę wierszy.
Spróbuj
Zaoszczędzono 2 bajty dzięki Kevinowi .
źródło
ú
konieczne? Wygląda na to, że rotacja to domyślnie?z
.Płótno , 8 bajtów
Wypróbuj tutaj!
źródło
Perl 6 , 94 bajtów
Wypróbuj online!
Anonimowy blok kodu, który pobiera liczbę i zwraca listę wierszy.
źródło
Węgiel drzewny , 17 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wejście
n
.Utwórz ciąg, łącząc liczby
1
zn
.Wypełnij trójkąt tej długości sznurkiem.
Obróć trójkąt w kierunku przeciwnym do ruchu wskazówek zegara o
n*90
stopnie.Odzwierciedlaj wszystko, co kończy się trójkątem, który jest obracany zgodnie z ruchem wskazówek zegara o
n*90
stopnie.źródło
C # (interaktywny kompilator Visual C #) , 128 bajtów
Wypróbuj online!
źródło
Rubin ,
958279 bajtówWypróbuj online!
3 bajty zapisane przez G B.
źródło
R ,
152139137134 bajtówKod rozwinięty:
Wypróbuj online!
źródło
APL + WIN, 45 bajtów
Monituje o liczbę całkowitą
Wypróbuj online! Dzięki uprzejmości Dyalog Classic
źródło
PowerShell , 108 bajtów
Wypróbuj online!
Trochę szorstki na brzegach, ale działa. Łączy cyfry 1
n
w ciąg, a następnie iteruje od 0 do długości tego ciągu-1. Za każdym razem używa indeksowania listy, aby zamienić na prawidłową metodę odstępów i zakres liczb użyty do wycięcia naszego nowego ciągu.źródło
Galaretka , 12 bajtów
Wypróbuj online!
źródło
05AB1E (starsza wersja) ,
141210 bajtówUżywanie starszej wersji jako przepisywania jest z tego powodu bardzo powolne.
Zaoszczędzono 2 bajty dzięki Kevinowi Cruijssenowi
Wypróbuj online!
Wyjaśnienie
źródło
LJη€S
naLSη
, ponieważS
domyślnie spłaszcza się.€S
co nie wyszło zbyt dobrze;)Stax , 10 bajtów
Uruchom i debuguj
źródło
PowerShell ,
10510195 bajtów-4 bajty dzięki Arnauldowi za sztuczkę z sortowaniem .
Wypróbuj online!
Mniej golfa:
źródło
R ,
175172154 bajtówWypróbuj online!
Okropny bałagan w linii!
-3 bajty, zmieniając warunek obrotu
-17 bajtów dzięki sugestii digEmAll i kolejny bajt po dalszym golfie
źródło
Wolfram Language (Mathematica) , 137 bajtów
Wypróbuj online!
źródło
Python 2 , 116 bajtów
Wypróbuj online!
źródło
Czerwony , 155 bajtów
Wypróbuj online!
źródło
perl 5, 117 bajtów
TIO
źródło
PHP ,
116111109 bajtówWypróbuj online!
Uruchom z
php -nF
wejściem zSTDIN
.$ echo 6|php -nF t.php
źródło
Java (JDK) ,
247209188186160148 bajtówWypróbuj online!
-38 bytes
dzięki @KevinCruijssen-21 bytes
, pozwalającprintf
sobie poradzić z wypełnieniem.-2 bytes
wykonując podciąg przed zamianą, co pozwala nam zwiększać wartośćl
w jednym miejscu, a nie w dwóch.-26 bytes
-printf
podczas wypełniania łańcuch pełen spacji nie był już potrzebny, a ciągi cyfr można najwyraźniej wygenerować w krótszy sposób.-12 bytes
nie zajmując się pojedynczymi cyframi zamiast drukować podciągi doskonale nadającego się do obsługi ciągu cyfr, który już mamy.Nie golfił
źródło
for(
można usunąć.new String(new char[w=s.length()]).replace('\0',' ')
może" ".repeat(w=s.length())
korzystać z Java 11+. Możesz usunąć nawias wokół kontroli trójskładnikowych.1>(i-1)%4/2
może być1>~-i%4/2
.w-1-l++
może byćw+~l++
. I nie musisz liczyć końcowego średnika w liczbie bajtów. Które wszystkie razem stają się 209 bajtami .