Jeśli podana jest cyfra od 0 do 9 (włącznie), twoja funkcja / podprogram powinien wypisać wszystkie liczby od -100 do 100 (włącznie), które zawierają daną cyfrę.
Na przykład:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
Zasady:
- Nie możesz używać łańcuchów (w żaden sposób, które są reprezentowane w wybranym języku) ani tablic znakowych. (Z wyjątkiem wydrukowania odpowiedzi na konsoli.)
- Nie możesz używać tablic.
Punktacja:
Wynik = długość podprogramu / funkcji (białe znaki nie będą liczone)
Odpowiedź z najniższym wynikiem wygrywa.
Białe spacje NIE będą liczone. Proszę poprawnie sformatować kod!
Niektóre odpowiedzi używają wyrażeń regularnych, które mogą naruszać zasadę braku ciągów, jak zauważyli niektórzy członkowie. Te odpowiedzi nie będą akceptowane.
0
Przed wysłaniem sprawdź swój kod .
Odpowiedzi:
Białe znaki, 834 znaki (0 po odjęciu białych znaków)
Użyłem tego interpretera do przetestowania go.
Tworzenie zajęło mi około 4 godzin ciężkiej pracy i okropnego debugowania. Ale to już koniec!
EDYCJA : Tekst do wyboru wyposażony w sztuczki HTML. Jeśli skopiujesz go i wkleisz stąd w inne miejsce, sprawdź, czy otrzymałeś dokładnie
[space][tab][linefeed][linefeed][linefeed]
na końcu 100 lub 101 wierszy (w zależności od tego, czy Twój edytor się liczy, czy nie nowego wiersza, jeśli ostatni kończy się wysuwem wiersza).W przypadku, gdy nie możesz użyć tego w ten sposób, biorąc pod uwagę spację jako
S
, podawanie linii jakoL
i tab jakoT
oraz łamanie linii poL
's, oto:źródło
Bash + utils - 20
Lub 21 bajtów, jeśli jest w skrypcie
Aby uruchomić skrypt:
źródło
grep
nie jestbash
lubsh
. To kolejne narzędzie!JavaScript 133-1 = 132
Z pewnością teraz nie może być nic złego w tej wersji ...?
źródło
for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i)
.alert(RegExp(9).test(99))
które oparte są tylko na liczbach, również zwracatrue
ze względu na luźno oparty system pisania JavaScript. Funkcje działają z liczbami tak, jakby były ciągami, ale nadal są liczbami ... Jeśli zmienisz kod, aby go odczytaćr=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))
i wykonać, pojawi się końcowy typ odpowiedzix
ii
jako liczby ... Ergo, nie używam ciągów ...GolfScript [24 bajty]
Opis:
DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D
źródło
Rubin: 92 znaków
Wersja do odczytu:
Przykładowy przebieg:
Testowe uruchomienie:
źródło
0
test.K - 45 znaków
Nie wygrywa żadnych nagród, ale gra w golfa K jest niedostatecznie reprezentowana. K nie robi się ładniejszy z odpowiednim odstępem, więc zostawię to tak, jak jest, ponieważ K bardzo wybrednie określa, które białe znaki są ważne, a które nie.
Wyjaśnił:
a:100-!201
- Zrób listę od 0 do 200 włącznie, a następnie odejmij ją od 100. Teraz mamy liczby od -100 do 100 włącznie, ale wstecz od specyfikacji pytania. Zawsze możemy to naprawić później, więc na razie po prostu to przypisamya
._ _abs
- Podnieś wartość bezwzględną tych liczb, ponieważ z jakiegokolwiek powodu K uważa, że_abs
powinno to dać wyniki zmiennoprzecinkowe. Na szczęście ich podłoga zamienia je z powrotem w liczby całkowite.10_vs'
- Rozwiń każdą'
liczbę całkowitą jako liczbę podstawową 10 (_vs
oznacza „wektor ze skalara”). Zauważ, że nie musieliśmy używać operatora Each'
w powyższych funkcjach, ponieważ działają one na atomach.@[...;100;0,]
- Zmień pozycję na naszej liście pod indeksem 100 (pusta lista, która jest wynikiem rozwinięcia 0 do podstawy 10) przez funkcję0,
, która wstawia zero na początek. Bez tej korekty funkcja ta zawiedzie na wejściu 0.&x in'
- Teraz zwróć indeksy (&
), gdziex
jest cyfrą w (_in
) każdym ('
) z rozwinięć, które tak starannie skonstruowaliśmy powyżej.|a@
- Na koniec użyj tych indeksów, aby zaindeksowaća
i odwrócić listę we właściwej kolejności.Użycie jest oczywiste, ale powodzenia w tłumaczeniu K. (Na Github istnieje implementacja typu open source , którą można skompilować).
źródło
grzmotnąć
5549 znaków:(nie licząc białych znaków
&&
)Wykonując to, mówiąc:
wyprodukowałby:
źródło
;
s na nowe linie i zapisać 2 punkty.PHP 67 bajtów:
Tak, istnieje połączenie typu „strpos”, ale używam tylko numerów!
Oto wersja „bez golfa”:
Aby to zadziałało, możesz to przetestować tutaj: http://writecodeonline.com/php/
Pamiętaj tylko, aby dodać
$_GET[n]='<number>';
na początku kodu.Lub, na lampie lub serwerze xampp, możesz utworzyć stronę, a następnie uzyskać do niej dostęp w przeglądarce, z parametrem
?n=<number>
po nazwie pliku.źródło
Mathematica 28
Przepraszam, po prostu nie mogłem się oprzeć.
:)
Instrukcje są następujące: „Jeśli podana jest cyfra od 0 do 9 (włącznie), twoja funkcja / podprogram powinien wypisać wszystkie liczby od -100 do 100 (włącznie), które zawierają daną cyfrę.”
Poniżej drukowane są wszystkie takie liczby w kolejności.
Jako specjalny bonus drukuje te liczby w tym samym zakresie, które nie zawierają danej cyfry. :)
źródło
Moja pierwsza próba tutaj, więc może robię coś źle, przepraszam;)
Nie byłem więc pewien, czy muszę dodać całą klasę, czy tylko logikę.
Java - 199 znaków
Oto bardziej czytelna forma:
Myślę, że podstawowy pomysł nie był taki zły, ale potrzebował zbyt wielu wyjątków, aby w końcu wypracować wszystkie przypadki ...: /
źródło
0
:(intx
... nie powinno byćint x
:?C -
104107114 znaków - 0 =104107114Nie golfowany:
źródło
0
zawiera0
.R 87
93Oto poprawa:
(Potencjalnie) Bardziej czytelny, z notatkami:
źródło
0
.0
. Próbowałeś z tą najnowszą wersją? Używam wersji R 3.0.1.Prolog: 75
źródło
test.pl
pliku, uruchomiłemswipl
, wprowadziłem,consult('test')
a następnie wpisałemf(9)
. Ale to tylko wróciłofalse
.Odpowiedź C w 98 znakach
To jedna z najseksowniejszych rzeczy, jakie kiedykolwiek kodowałem
Starsza wersja, z 104 znakami spacjami:
„Działa dla mnie” przy użyciu GCC i CLANG.
źródło
GNU coreutils (44)
gdzie
tr
służy do konwertowania nowych linii na spacje iecho
zapewnia jedną końcową nową linię.źródło
JavaScript 116
źródło
J - 27 znaków
Wszystkie białe znaki można bezpiecznie usunąć, co oznacza 27 znaków. Liczby ujemne na wyjściu będą miały
_
znak ujemny: w ten sposób J zapisuje liczby ujemne.Wyjaśnił:
V & (i: 100)
- Bind (&
) zestaw liczb od -100 do 100 włącznie (i:100
) jako prawy argument głównego czasownika (V
). Pojedynczy argument całego czasownika zostaje przeniesiony na lewą stronę.(U"0 # ])
- Użyj wyniku czasownikaU
nad każdą liczbą z prawego argumentu ("0
), aby wybrać (#
) elementy z prawego argumentu (]
).(e. 10 #.^:_1 |)
- Biorąc pod uwagę cyfrę do sprawdzenia jako lewy argument i liczbę do sprawdzenia jako prawy argument, rozwiń w bazie 10 (10 #.^:_1
) wartość bezwzględną liczby (|
) i sprawdź, czy cyfra jest elementem tego rozszerzenia (e.
).Stosowanie:
źródło
-
Negate / Minus. K pozwala ci używać znaku ujemnego „naturalnie” w liczbach, a nawiasem mówiąc, K wyszedł z tajemniczego syntaktycznego pieprzenia klastra. Jeśli to naprawdę irking cię praca w wyborze;8!:1
,'4.0'8!:2
albo'-'I.@:=&'_'}":
, kosztuje 7, 11 i 16, odpowiednio, znaki, aby program wynikowy funkcji zamiast wyrażeniu, przez moich obliczeń.Groovy, 127
Bez ciągów znaków (z wyjątkiem wyświetlania spacji między liczbami), bez tablic znaków lub innych tablic, bez wyrażeń regularnych. Testowane z 0. Wyjście:
-100 -90 -80-70-60-50 -40-30-30-20-10 0 10 20 30 40 50 60 70 80 90 100
źródło
JavaScript - 108
Nie jestem pewien, czy istniejąca odpowiedź w javascript zostanie wzięta pod uwagę, ponieważ używa wyrażenia regularnego, więc stworzyłem jedną bez niej:
Można również skrócić do 101, jeśli zmienna x zostanie wstawiona bezpośrednio, np .:
Zasadniczo sprawdza, czy wartości bezwzględne operacji div lub mod są równe cyfrze (co działa również dla 100).
źródło
x=1
nie uda się wydrukować-100
lub100
.1
działa dobrze, ale teraz0
drukuje1
,2
,3
... Przepraszam za kłopoty tutaj.prompt()
zwraca ciąg znaków, więc dodałem * 1 i mam nadzieję, że teraz powinno być dobrze. Dziękuję za sugestieparseInt(j/10)
można zastąpić,(0|j/10)
który jest zarówno krótszy, jak i pozwala uniknąć ukrytych ciągów. (Nieuniknionej) konwersji ciągu na liczbę wprompt()*1
nie można skracać jako+prompt()
. (Lub jeszcze krócej, zmień funkcję, aby rozpocząćfor(x=+prompt(i=-100);...
.GW Basic: 107 znaków bez białych znaków
Używanie pojedynczych cyfr w numerach linii pomaga, a spacja białych znaków oznacza, że tak naprawdę nie ma potrzeby posiadania wielu instrukcji w wierszu więcej niż jeden raz, aby liczby osiągały 10.
źródło
GROOVY, 71
Prowadzi do
źródło
JavaScript 96
Za pomocą bitowego lub:
źródło
Haskell,
8675 (78 z niezbędnymi odstępami)Nie golfowany:
źródło
a 0=[-100....
ia d=[b|b<-....
można pozbyć sięif then else
i zaoszczędzić kilka bajtów.Python - 172 znaki
Aby przetestować w Pythonie:
źródło
VBA 121
(nie
Sub
licząc białych znaków ani definicji):źródło
0
?IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
perl, 117 z usuniętymi nieistotnymi znakami białych znaków
Myślę, że szukałeś czegoś takiego. Odczytuje ze standardowego wyjścia, generuje jeden wiersz na dopasowanie. Żadnych wyrażeń regularnych, tablic (lub zestawów, skrótów lub czegokolwiek innego, co jest tablicą pod okładkami) lub ciągów, niejawnych lub innych, z wyjątkiem ciągów przekazanych do drukowania:
na przykład:
źródło
F #
8792–7dodano 5 znaków, ponieważ 0 nie było poprawnie obsługiwane. (Wszystkie wartości jednocyfrowe zostaną zwrócone).
źródło
To moja pierwsza gra w golfa kodowego. To wygląda całkiem interesująco. Nie mogę wygrać, ale próbowałem i chciałem pokazać, co mogę zrobić.
Python: 104 (89, jeśli mogę powtórzyć import) - jeśli wyniki muszą być wydrukowane dokładnie tak, jak pokazano w przykładzie
Python: 71 - jeśli dane wyjściowe można wykonać poza funkcją, a jedynym ograniczeniem dla danych wyjściowych jest to, że nie są drukowane żadne naruszające liczby
źródło
JavaScript 125 znaków
Przepraszam za kilka zmian, które miałem problemy z zrobieniem tego z mojego telefonu :)
źródło
Dogelang, 42 znaki niebiałe
To samo co moje rozwiązanie Python, właśnie przekonwertowane na Dogelang .
źródło