Biorąc pod uwagę całkowite dodatnie i wyjście kolumnach i wierszy tekstu w sposób opisany poniżej.
Pierwszy rząd zaczyna się od 11 0
s, drugi rząd przez 10 1
s, trzeci przez dziewięć 2
s i tak dalej w dół do dziesiątego rzędu dwoma 9
s. W każdym z tych pierwszych dziesięciu wierszy, po początkowym przebiegu kolejnych cyfr, następna najniższa cyfra pojawia się dwa razy, zanim druga następna najniższa cyfra pojawia się dwa razy, przy czym ten wzór powtarza się na zawsze. Jeśli wystąpi ciąg 0
s, cyfry po nim są zawsze 9
s.
Rzędy poniżej dziesiątego rzędu są takie same jak rząd bezpośrednio nad nim, ale są przesunięte w prawo o jeden. Nowa cyfra, która się pojawi, jest taka sama jak poprzednia cyfra skrajnie lewa, jeśli nie znajdowała się obok innego wystąpienia. W przeciwnym razie jest to kolejna najwyższa cyfra (cyklicznie od 9 z powrotem do 0).
Pierwsze elementów są następujące:
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
Oto obraz z kolorowym tekstem, aby wzór był bardziej wyraźny.
Jeśli chcesz utworzyć mniej kolumn / wierszy, powinieneś po prostu przyciąć powyższy tekst.
Jeśli chcesz wyprodukować więcej kolumn / rzędów niż to, istniejące schody powinny zostać przedłużone. Jeśli więcej kolumn / wierszy dodaje nowe schody kolejnych cyfr, cyfry należy cyklicznie wybierać spośród liczb całkowitych. Zatem dla danych wejściowych wynik powinien wynosić
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
Oto obraz tego tekstu w kolorze:
Zasady
- Dane wyjściowe można podać dowolną dogodną metodą .
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Jeśli chcesz, możesz zwrócić listę linii.
- Jeśli chcesz, możesz zwrócić tablicę cyfr 2D lub listę list cyfr.
- Standardowe luki zabronione.
Najkrótszy kod wygrywa.
Przypadki testowe
1,1
0
3,2
000
111
20,1
00000000000998877665
11,10
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
15,13
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
źródło
Odpowiedzi:
Python 3,
9493787774 bajtów-1 bajt z Dylnan
-15 bajtów, zwracając listę list zamiast drukowania z xnor
-1 bajt, zmieniając kolejność
(j-i+10)//2%10
ij
częściif
-else
-3 bajty od Jo Kinga , zmieniając
if
-else
na listę.Wypróbuj online!
źródło
C (gcc) ,
10110099 bajtówWypróbuj online!
źródło
printf("%d",
->putchar(48+
Płótno, 14 bajtów
Wypróbuj tutaj!
Robiąc to zauważyłem w kilku miejscach, że miałem ujemne moduły w Canvas (tutaj oznaczało to, że
»
- floor div 2 - zaokrąglony w kierunku 0). Poprzednia 18-bajtowa odpowiedź, która działała bez poprawek, już nie działa (ponieważ zapisuję tylkomain.js
między wersjami), ale TIO wciąż ma starą wersjęWyjaśnienie:
źródło
Węgiel drzewny ,
2017 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Edycja: Zapisano 3 bajty, przechodząc do algorytmu @ dzaima.
źródło
Galaretka , 14 bajtów
Wypróbuj online! Lub zobacz (sformatowany) zestaw testów .
W jaki sposób?
źródło
Kotlin , 78 bajtów
Wypróbuj online!
źródło
Galaretka , 19 bajtów
Stosuje bardzo podobne podejście do pizzapantów i Neila . Oszczędność 1 bajtu dzięki Jonathanowi Allanowi .
Wypróbuj online!
Link pomocnika
Jest to łącze monadyczne (galaretowy odpowiednik funkcji pojedynczego argumentu), które można wywołać z następnego łącza za pomocą szybkiego
Ç
. Pobiera listę dwóch liczb całkowitych i wykonuje następujące czynności:Zmniejsz przez odjęcie.
Połóż jego połowę na liczbie całkowitej i dodaj 5, a następnie weź ją modulo 10.
Główny link
Jest to łącze diadadowe (galaretowy odpowiednik funkcji dwóch argumentów), które można wywołać z następnego łącza za pomocąx i y i wykonuje następujące czynności:
ç
szybkiego. Zajmuje dwie liczby całkowiteIloczyn kartezjański ich zakresów, a następnie odejmij1 z każdej liczby całkowitej na tej liście. Jest to równoważne z( [ 0 , x ) ∩ Z ) × ( [ 0 , y) ∩ Z ) .
A dla każdej pary w produkcie kartezjańskim, jeśli ich suma jest mniejsza niż 9, to:
Odzyskaj głowę pary (pierwszy element). Inaczej,
Zadzwoń na link pomocnika (wyjaśniony powyżej) na parze.
Na koniec podziel wynikową listę na kawałki długościy i weź każdy mod 10.
źródło
p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵
lubp’Ḣ_/:2+ʋS<9Ɗ?€5s%⁵
, albo jako monada zp’Ḣ_/:2+5ƲS<9Ɗ?€s%⁵