Biorąc pod uwagę dwie liczby całkowite dodatnie, „A” i „B”, wydać „box” ASCII-art czyli A znaków szerokości i b znaków wysoki. Na przykład za pomocą „4” i „6”:
****
* *
* *
* *
* *
****
Proste prawda? Oto zwrot akcji: ramką pola muszą być naprzemiennie znaki „a” i „b”. Rozpoczyna się w lewym górnym rogu i kontynuuje w spiralę zgodnie z ruchem wskazówek zegara. Na przykład poprzedni przykład z 4 i 6 powinien być
4646
6 4
4 6
6 4
4 6
6464
A i B mogą być liczbami dwucyfrowymi. Na przykład dane wejściowe „10” i „3” powinny generować:
1031031031
1 0
3013013013
Aby zachować względnie małą wydajność, nie musisz obsługiwać trzech lub więcej cyfr. Ponadto, ponieważ dane wejściowe są ograniczone do dodatnich liczb całkowitych, „0” jest nieprawidłowym wejściem, z którym nie musisz sobie poradzić.
Oto kilka innych przypadków testowych:
Input: (3, 5)
Output:
353
5 5
3 3
5 5
353
Input: (1, 1)
Output:
1
Input: (4, 4)
Output:
4444
4 4
4 4
4444
Input: (27, 1)
Output:
271271271271271271271271271
Input: (1, 17)
Output:
1
1
7
1
1
7
1
1
7
1
1
7
1
1
7
1
1
Input: (12, 34):
Output:
123412341234
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
432143214321
Możesz pobierać dane wejściowe i wyjściowe w dowolnym rozsądnym formacie, a standardowe luki są zabronione. Ponieważ jest to kod-golf, wygrywa najkrótsza odpowiedź w bajtach!
a
1 to lewa ściana czy prawa ściana?Odpowiedzi:
Pyth ,
6551 bajtówWypróbuj online!
źródło
C #, 301 bajtów
Jestem pewien, że można tu grać w golfa o wiele więcej, ale cieszę się, że udało mi się rozwiązać problem.
Znalazłem błąd, w którym dolna linia była w niewłaściwej kolejności, cholera!
Stara wersja: 280 bajtów
źródło
Python 2, 199 bajtów
źródło
Rubin, 128 bajtów
Generuje końcowy znak nowej linii, jeśli wysokość wynosi 1.
Link Ideone: https://ideone.com/96WYHt
źródło
[w,h]*""
zamiast"%d%d"%[w,h]
4 bajtów i nie potrzebujesz nawiasów wokółs[q-2,w].reverse
, ale wtedy będziesz potrzebował spacji po:
, więc -1 bajcie.JavaScript,
213212202Z pewnością jest miejsce na ulepszenia.
Edycja: Zapisano bajt dzięki TheLethalCoder
źródło
`${c}${a}`.repeat(l+1)
może ci to uratować bajt.W=W.substr(0,a-2).replace(/./g," ")
to samo coW=" ".repeat(a-2)
? (Czy twój kod faktycznie działaa=1
?)C, 311 bajtów
Wykorzystuje automatycznie dołączone biblioteki
stdio.h
istring.h
.źródło
JavaScript (ES6), 171 bajtów
Gdzie
\n
reprezentuje dosłowny znak nowej linii. Tworzy powtarzający się ciąg cyfr, a następnie decyduje, co połączyć, na podstawie tego, w którym wierszu się znajdujemy; górny rząd jest tylko początkowym wycinkiem powtarzanego ciągu cyfr, dolny wiersz (jeśli istnieje) jest odwróconym wycięciem ze środka ciągu, podczas gdy wiersze pośrednie są budowane przy użyciu znaków pobranych z innych części ciągu.źródło
(w,h)=>
na,w=>h=>
aby zapisać bajtTSQL, 291 bajtów
Gra w golfa:
Nie golfowany:
Skrzypce
źródło
Python 3,
155148 bajtówGrał w golfa o 7 kolejnych bajtów
Zastąpiony
2*w+2*h-4or 1
zamax(1,2*w+2*h-4)
i['',s[-i-1]][w>1]
za(s[-i-1]if w>1else'')
.Poprzednia wersja:
źródło