„Nagroda Nobla w dziedzinie matematyki została przyznana kalifornijskiemu profesorowi, który odkrył nowy numer! Liczba jest wybielona, a jego zdaniem należy do przedziału od 6 do 7.” - George Carlin
W tym wyzwaniu wydrukujesz wszystkie liczby całkowite, włącznie, w podanym zakresie wejściowym. Drukuj liczby rosnąco lub malejąco zgodnie z ich kolejnością wprowadzania. Oznacza to, że dla wejścia [n1, n2]
, wydrukować rosnąco jeśli n1 < n2
, malejąco jeśli n1 > n2
.
Ponieważ bleen
jest to teraz liczba całkowita, można go użyć jako danych wejściowych. Musi być również uwzględniony w danych wyjściowych, pomiędzy 6
i, w 7
stosownych przypadkach. Zauważ też, że -bleen
istnieje od -7 do -6.
Wejście
Dwie [n1, n2]
liczby całkowite z zakresu [-10, 10] włącznie, poprzez wybór wybranego języka programowania.
(Dane wejściowe mogą również zawierać bleen
i -bleen
!)
Wynik
Wydrukuj wszystkie liczby całkowite, zaczynając od n1
i kończąc na n2
, w tym nowo odkryte bleen
między 6 a 7. Dane wyjściowe mogą być zakresem liczb oddzielonych znakami w jakiejś formie obsługiwanej przez Twój język - to znaczy przecinkami lub spacjami. Jedna końcowa przestrzeń wyjściowa jest w porządku.
Przykłady
Input: 1 10
Output: 1 2 3 4 5 6 bleen 7 8 9 10
Input: -9 -4
Output: -9 -8 -7 -bleen -6 -5 -4
Input: -8 bleen
Output: -8 -7 -bleen -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 bleen
Input: 9 1
Output: 9 8 7 bleen 6 5 4 3 2 1
Input: 2 -bleen
Output: 2 1 0 -1 -2 -3 -4 -5 -6 -bleen
Input: -bleen 0
Output: -bleen -6 -5 -4 -3 -2 -1 0
Input: bleen bleen
Output: bleen
Input: 2 2
Output: 2
Dodatkowe uwagi
Możesz napisać program lub funkcję i użyć dowolnej standardowej metody otrzymywania danych wejściowych i zapewniania danych wyjściowych.
Możesz używać dowolnego języka programowania , ale standardowe luki nie są dozwolone.
To jest golf golfowy , więc wygrywa najkrótsza ważna odpowiedź - mierzona w bajtach .
Odpowiedzi:
Python 3,
132130 bajtówPobiera dane wejściowe w następującym przykładowym formacie:
źródło
[-10,10]
?bleen=7/m
do wyjaśnienia bez kary postacieval
jest przetłumaczeniebleen
na poprawną wartość.Rubin,
11410098 bajtówDane wejściowe to tablica z
[n1, n2]
. (Jeśli muszą to być dwa oddzielne argumenty, +1 bajt, aby zmienić funkcję arg zg
na*g
. Bleen musi być łańcuchem,."bleen"
Wyprowadza tablicę zakresu. Sugerowany przez @Jordan z jego (?) Początkową wersją dającą -7 bajtów, ale potem grałem w golfa jeszcze 7.Wypróbuj online.
Oryginalna pełna wersja programu, która odczytuje dane wejściowe z
ARGV
:źródło
.map &:to_s
i zapisać 6 bajtów, a możesz zaoszczędzić jeszcze jeden, zmieniając inicjalizacjęa
naa=*-10..10;a[4,0]=?-+b;a[18,0]=b
.->*g{b='bleen';a=*-10..10;a[4,0]=?-+b;a[18,0]=b;x,y=g.map{|v|a.index v};puts y<x ?a[y..x].reverse: a[x..y]}
Pyth , 35 bajtów
Zestaw testowy.
Pierwsza część, tj.
K++L\-P_J++`M7"bleen"`M}7TJ
, Generuje tę tablicę:a następnie przechowuje w
K
.Druga część, tzn.
@LK}FxLK
Znajduje podlistę wskazaną przez dane wejściowe.źródło
Python 3,
157145123108115139161158153 bajtówOszczędności 22 dzięki Lynn. 17 uratowanych dzięki shooqie. 3 zapisane dzięki ljeabmreosn. 5 zapisanych dzięki Geoff Reedy.
Dane wejściowe jak
'-10', '8'
. Wskazówki są mile widziane dla początkujących.Dodano 7 do konta
-bleen
. Dodano 15, aby uwzględnić odwrócone dane wejściowe, takie jak'8','-10'
. Dodano dużą uwagę do 21 odwróconym wejściowych znaków nableen
żywo-bleen
.źródło
l.index('-6')
il.index('7')
powinny być po prostu stałymi, nie?l=[str(i)for i in range(-10,11)]
->l=list(map(str,range(-10,11)))
l=list(range(-10,11))
działa równieżfor i in(4,18):l.insert(i,'bleen')
.'bleen'
zamiast'-bleen','bleen'
Rubin, 141 bajtów
Bez golfa
źródło
Partia,
239186 bajtówDziała przez zapętlanie od
3*%1
do,3*%3
a następnie dzielenie przez trzy i drukowanie liczb bez reszty, jednak ustawieniebleen
tej magicznej liczby powoduje przepełnienie liczb całkowitych i20
zamiast tego używana jest wartość . Jest to następnie drukowane w odpowiednim punkcie pętli.źródło
-bleen
też zapomniałem . Bah.bleen.bat bleen -bleen
może?JavaScript (ES6), 158
Niezłe wyzwanie, trudne do gry w golfa. Prawdopodobnie metody zakresu stosowane w odpowiedziach w Pythonie i Ruby mogłyby uzyskać lepsze wyniki nawet w JS.
Mniej golfa
Test
źródło
Swift 2.2, 342 bajtów
Przetestuj to za pomocą Swift Sandbox IBM
Bez golfa
źródło
Java, 271 bajtów
Niegolfowany z przypadkami testowymi:
Zadzwoń b (początek, koniec). Ponieważ parametry są łańcuchami, przekształcenie ich w wartości int zajmuje dużo miejsca. Zasadniczo program traktuje 7 i -7 jako bleen i -bleen.
źródło
p
można zmienić następujące zapisać 6 bajtów:int p(String w){int x=w.length(),i;if(x>3)return x<6?7:-7;i=Integer.decode(w);return i<-6?i-1:i>6?i+1:i;}
. Możesz także stwierdzić, że jest to Java 7 i być może dodać ideone .Java 7, 251 bajtów
Inne podejście, które jest krótsze niż już istniejąca odpowiedź Java 7 .
Ponadto niefortunnie jest, że parametry potencjalnie nie są uporządkowane, co powoduje dodanie niektórych bajtów do ich zamiany.
Przypadki bez golfa i testy:
Wypróbuj tutaj.
Wynik:
źródło
Scala, 223 bajty
źródło
JavaScript (ES6), 178 bajtów
Spróbuj
EDYCJA: Poprawka dla odwrotnego zamówienia. Dzięki Patrick, przegapił ten warunek
źródło
Python 3, 126 bajtów
Dane wejściowe są w formie
-5, 'bleen'
źródło
R ,
110107 bajtówDzięki Cyoce za grę w golfa 3 bajty.
Buduje całą listę w kolejności, wybiera odpowiednie. Funkcja w środku o nazwie „b” wydawała się najłatwiejszym sposobem, aby tak się stało. Zastosuj itp
źródło
JavaScript (przy użyciu zewnętrznej biblioteki) (343 bajtów)
Link do lib: https://github.com/mvegh1/Enumerable
Zrzut ekranu:
źródło
Python 2, 100 bajtów
Pierwsze cztery linie generują listę
[-10, -9, -8, -7, 'bleen', -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 'bleen', 7, 8, 9, 10]
. Następny wiersz pobiera dane wejściowe i przechowuje je ws
ie
. Ostatnie dwa wiersze używają.index()
i notują wycinanie listy, aby uzyskać prawidłowy zakres.Działa tak samo jak odpowiedź Dziurawej Zakonnicy, ale rozwija się niezależnie. Ukradnij metodę wprowadzania z orlp.
Nie golfowany:
źródło
-7
i-6
to-bleen
niebleen
. Chociaż znaleźliśmy nowy numer, podstawowe zasady algebry muszą pozostać niezmienne:0
jest to jedyna liczba, która jest własnym dodatkiem odwrotnym, ponieważ jest addytywnym elementem tożsamości. Co więcej,eval(input())
jest właśnieinput()
w Pythonie 2.