Jutro, 23 listopada, jest Dzień Dziękczynienia w Stanach Zjednoczonych. Aby się przygotować, musisz ugotować kilka indyków ASCII. Ponieważ jednak spóźniasz się z planowaniem, potrzebujesz programu (lub funkcji), który pomoże ci ustalić, ile ptaków musisz przygotować.
.---. _
.' './ )
/ _ _/ /\
=(_____) (__/_/==
===================
Znalezione przez ciebie indyki są raczej małe, więc wymyśliłeś następujące proporcje - jeden indyk nakarmi:
- cztery osoby, które lubią tylko białe mięso i trzy osoby, które lubią tylko ciemne mięso
- lub siedmiu ludzi, których to nie obchodzi
- lub ich kombinacja.
Oznacza to, że w każdym indyku są 4 porcje białego mięsa i 3 porcje ciemnego mięsa. Ponadto nie można kupić i ugotować częściowego indyka.
Na przykład dla 3 osób, które lubią tylko białe mięso, 6 osób, które lubią tylko ciemne mięso, i 3 osób, które nie dbają o to, potrzebujesz dwóch indyków. To daje 8 porcji białego i 6 porcji ciemnego, co wystarczy, aby zadowolić wszystkich i mieć trochę białego mięsa:
.---. _ .---. _
.' './ ) .' './ )
/ _ _/ /\ / _ _/ /\
=(_____) (__/_/== =(_____) (__/_/==
=====================================
Na 20 osób, które nie przejmują się, będziesz potrzebować trzech indyków i pozostanie odrobina bieli lub ciemności:
.---. _ .---. _ .---. _
.' './ ) .' './ ) .' './ )
/ _ _/ /\ / _ _/ /\ / _ _/ /\
=(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================
I tak dalej.
Zasady
- Trzy dane wejściowe mogą być w dowolnej kolejności i w dowolnym dogodnym formacie . W odpowiedzi proszę wskazać, w jaki sposób dane wejściowe są przyjmowane.
- Nigdy nie będzie zapotrzebowania na więcej niż 25 indyków (czyli maksymalnie 175 osób do jedzenia).
- Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że znaki są odpowiednio ustawione.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je wydrukować.
- Dane wyjściowe mogą być wysyłane do konsoli, zwracane jako lista ciągów, zwracane jako pojedynczy ciąg itp.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Odpowiedzi:
Befunge-93,
231224 bajtówWypróbuj online!
Trzy wartości są odczytywane ze standardowego wejścia w kolejności: białe mięso, ciemne mięso, nie przejmuj się.
źródło
APL (Dyalog) ,
120118104 bajtów14 bajtów zapisanych dzięki @ Adám
Wypróbuj online!
Wybredni biali i ciemni są po prawej, a nie wybredni po lewej.
Szkoda, że większość bajtów jest obecnie brana pod ciąg.
W jaki sposób?
⍵,⍺++/⍵
- tworzy tablicę whity, darky i sumę ich wszystkich plus non pickys4 3 7÷⍨
- podzielić przez ilu z nich ma życzenia od jednego kurczaka⌈/
- weź najwyższą ocenę spośród wszystkich trzech - więc jeśli mamy bardzo dużą liczbę osób poszukujących ciemnego mięsa, nie zostaną one pominięte⌈
- pułap, na wypadek zapotrzebowania tylko połowy kurczakaNastępnie tworzymy ciąg,
⊂
otaczamy go , a następnie powtarzamy zamkniętą macierz obliczone czasy kurczaków/
, a na koniec łączymy wszystkie kurczaki,/
.źródło
'='⍪⍨' .-_''/)\=('[4 19⍴10 10⊤¯35+⎕UCS'###(##-:77-&(#F*####+,&0N&&)#,N0Z&d++#']
z⎕IO←0
.Python 2 , 142 bajty
Wypróbuj online!
-16 bajtów dzięki Lynn
-4 bajtów dzięki Mr. Xcoder
i z powrotem do lambda xD
źródło
SOGL V0.12 , 65 bajtów
Wypróbuj tutaj!
Zamówienie jest wejść
white
,dark
a następnieeither
.źródło
Python 2 ,
197189174 bajtówdzięki Erikowi Outgolferowi za -12 bajtów
dzięki Jonathanowi Frechowi za -1 bajt
Wypróbuj online!
źródło
Węgiel drzewny , 76 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wydrukuj indyka z jednym wcięciem.
Wydrukuj tabelę.
Podaj liczbę osób jedzących ciemne i białe mięso.
Powtórz jeden raz poniżej pułapu maksimum a) jednej trzeciej liczby osób jedzących mięso ciemne b) jednej czwartej liczby osób jedzących mięso białe c) jednej siódmej liczby osób jedzących mięso.
Zrób kopię indyka.
źródło
Excel VBA,
222219211198 bajtówAnonimowa funkcja bezpośredniego okna VBE, która pobiera dane wejściowe z zakresu
[A1:C1]
z porządkiem białego mięsa, ciemnego mięsa i obojętnie w tej kolejności i przekazuje dane do zakresu[D1]
.Początkowo rozwiązanie znajduje prawidłową liczbę indyków, a następnie tyle razy powtarza wzór indyka. Idealnie byłoby to wtedy bezpośrednio wyprowadzone do bezpośredniego okna VBE, jak pokazano poniżej
Ta wersja początkowo wywołuje prawidłową odpowiedź, jednak jest ona automatycznie formatowana automatycznie przez kompilator, podobnie jak
_
znak kontynuacji linii, a zatem jest przesuwana tak, aby mieć tylko jedenznak (spacja) po lewej stronie, przerywając wzór.
Przykład pokazany poniżej dla jasności
Aby to poprawić, ostatni znak spacji (
, char 160, Alt + 255)
, char 32) przed
_
wierszem jeden z danych wyjściowych jest zastępowany spacją niełamiącą (-3 bajty do użycia
1
rozdzielonej instrukcji split-8 bajtów do wykorzystania podczas przenoszenia
=
do podziału i dodawania łańcucha w celu konkatenacji-13 bajtów na użycie niełamliwej spacji, aby zapobiec autoformatowaniu danych wyjściowych
źródło
Kotlin ,
207198 bajtówdzięki Taylor Scott za -7 bajtów
Nie działa to jeszcze w TIO , ponieważ wymaga Kotlin 1.1Wypróbuj online!
źródło
JavaScript (ES6),
180179 bajtówZwraca tablicę ciągów.
Pokaż fragment kodu
JavaScript (ES6),
182181 bajtówWyprowadza pojedynczy ciąg.
Pokaż fragment kodu
-1 bajt (Arnauld):
a+3>>4
zamiast(a+3)/4)
źródło