var QUESTION_ID=90349,OVERRIDE_USER=58717;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
a
również wystarczającą ilość?A
z oczywistych powodów.U
dla znaków ucieczki Unicode (\u0041
isA
),X
znaków ucieczki heksadecymalnej (\x41
),+
ordinals Unicode (U+0041
),&
dla encji HTML,#
bo tak naprawdę nie wiem,65
jest to dziesiętny porządkowyA
,41
jest porządkowy szesnastkowyA
,97
jest dziesiętny porządkowya
oraz0
z kilku poprzednich powodów.Odpowiedzi:
Pluso, 1 bajt
Pluso Esolangs Page .
Pluso zawiera pojedynczy akumulator, który zaczyna się od wartości 1. Używa dwóch poleceń, p, które zwiększają akumulator (mod 27), oraz o, które drukuje bieżącą wartość jako duży znak ASCII, AZ lub spację (gdzie 1-26 reprezentuje AZ odpowiednio, a 0 oznacza spację).
Ponieważ akumulator rozpoczyna się w dniu 1, polecenie O bez uprzedniego P wyświetli A .
źródło
Python 2, 14 bajtów
Wyrażenie
3<3
podaje wartość logicznąFalse
, a backticks reprezentują ciąg znaków'False'
. Stąd pozostaje wyodrębnić lista
. Python ma indeks 0, więca
ma indeks1
, który jest zbanowanym znakiem. Można to wyrazić jako3-2
, ale istnieje krótsza droga. Python pozwala na indeksowanie od tyłu, z indeksem-1
dla ostatniego wpisu,-2
dla poprzedniego przed nim i tak dalej. Chcemy indeksu-4
, ale4
jest to także numer zbanowany. Ale możemy wyrazić jako~3
stosując dopełniacz-bitowy~
, co daje-n-1
na~n
.źródło
[2]
tego zrobić zamiast[~3]
?[1]
.1
i4
„zbanowane” numery?Pyth, 2 bajty
Przetestuj w kompilatorze Pyth .
Jak to działa
źródło
PHP,
96 bajtówPrzez 9 bajtów: Zainspirowany odpowiedź @Ton Hospel użytkownika . Dodatkowo ma tę dodatkową zaletę, że wygląda trochę jak Kaomoji. :-)
Ulepszona wersja 6 bajtów:
gdzie ¾ ma kod szesnastkowy 0xBE (ważne jest, aby zapisać plik w kodowaniu Latin-1 , a nie UTF-8!).
źródło
f^E^b
.^_^
A
. Drukuje=A
.=
znaku.05AB1E,
32 bajtyWyjaśnienie
Wypróbuj online
Zaoszczędzono 1 bajt dzięki Adnanowi
źródło
Th
za dwa bajty :)pieprzenie mózgu, 16 bajtów
Opiera się to na algorytmie Esolanga dla pieprzenia mózgu dla 159 .
Wypróbuj online!
źródło
+
. ( byłby najkrótszy sposób na wydrukowanie litery A>+[+[<]>>+<+]>.
), ale dzięki liście stałych w Esolang nie jest to zbyt trudne.JavaScript (ES6),
171614 bajtówZaoszczędzono dwa bajty dzięki Neilowi!
Zwraca drugi znak
NaN
, którym jesta
.Jest to najkrótszy jaki mogłem wymyślić
A
,4342 bajty:Kto powiedział, że bycie zaciemniaczem nie pomaga w golfie kodowym? Nie ja!
Objaśnienia
Pierwszy w głębi.
-_
jest NaN, ponieważ_
jest niezdefiniowany. Aby uzyskać to jako ciąg, potrzebna byłaby jedna z następujących czynności:Ostatni jest za długi i pierwsze użycia
+
. Więc używamy drugiego. Teraza
jest na indeksie1
. To nie jest dobre, ponieważ1
jest zabronione. Jednak będąc ciągiem szablonu, możemy wstawić tam spację, aby była ona na indeksie2
, pozostawiając nam to` ${-_}`
.Drugi, dogłębnie.
Ten był doozy.
Jest to dziewiąty znak wewnętrznego ciągu szablonu, który
-~8
jest równy 9. W tym przypadku ten ciąg szablonu służy tylko do tworzenia łańcucha. To jest rygorystyczne wewnętrzne równanie, pomiędzy${...}
:Rozwińmy to trochę:
Spowoduje to pobranie właściwości z pustej tablicy. Ta właściwość jest oczywiście ciągiem szablonu, ale wokół niej jest trochę tekstu. Jest to mniej więcej odpowiednik:
`constr${
${!""}
[2]}ctor`Z kolei wnętrze odpowiada:
!_
jesttrue
(ponieważ_
jestundefined
, i!undefined === true
), a łańcuchowe jest"true"
. Otrzymujemy jego drugą postaću
; musimy to zrobić w ten sposób, aby uniknąć jawnego wpisywaniau
naszego kodu.Tak więc ten bit wewnętrzny jest równoważny:
Otrzymujemy więc konstruktor tablicy,
Array
funkcję. Nie mogłem tego jednoznacznie określić, ponieważ zawiera on zabronioneA
. Teraz stringowanieArray
funkcji daje"function Array() { [native code] }"
.Powrót do oryginalnego kodu:
Jest to równoważne, jak widzieliśmy:
Równoważny:
Wreszcie równoważny z:
źródło
a
jest postacią zabronioną i jest w środkutoUpperCase
.Sześciokąt , 4 bajty
Ayyy Lmao? Całkiem golfowy jak na haha dla golfistów. Kod:
Wypróbuj online!
Bardziej czytelna forma:
To stawia wartość ASCII litery
B
, która wynosi 66, na bieżącej krawędzi pamięci. Odejmuje to za pomocą jednego(
i drukuje za pomocą;
. Następnie program zostaje zakończony przy użyciu@
.Obraz ścieżki obowiązkowej:
źródło
Galaretka , 3 bajty
Wypróbuj online!
Jak to działa
Galaretka, 4 bajty
Wypróbuj online!
Jak to działa
źródło
Właściwie 2 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
CJam, 3 bajty
Wypróbuj online!
Jak to działa
źródło
Bubblegum , 1 bajt
lub
Wszyscy zdawali się zapominać, że istniał ...
źródło
Perl,
98 bajtówxor jest nadal dozwolony, ale
say
nie jest. Tak więc dla 9 bajtów:Jednak użycie danych wyjściowych do STDERR daje 8 bajtów:
Zamień
\x9e
i\xf5
ich dosłowne wersje. Lub wygeneruj plik wykonywalny za pomocą:źródło
say
(zawiera a) do drukowania, o ile konstrukcja argumentu nie używa zabronionych znaków?print "No using the letter with code point 65";
.> <> , 6 bajtów
to tworzy ciąg znaków, odbija się i tworzy go ponownie w odwrotnej kolejności, odwraca 2 górne elementy stosu i odejmuje: „|” (124) minus ”;” (59) to „A” (65)
Wypróbuj online
źródło
'$-o;|
co jest prawie takie samo, ale bez podskakiwania. (|;o-$'
również działa.)Rubin,
1512 bajtówźródło
$><<
nap
, sprawia, żep to_s[-3]
p
wywołujeinspect
na jej argumentów, więc będą notowane wyjście, które go dyskwalifikują.Java, 55 bajtów
Ponieważ kod musi go wydrukować, wymagany jest jeden z dwóch wbudowanych programów piszących.
System.out
jest, no cóż, ponieważ zawierau
.System.err
działa jednak.Kolejną przeszkodą jest obsługa Java przez
char
iint
. Ponieważ nie można go przesyłać,char
ponieważ zawieraa
i ponieważ'c' - 2
awansujeint
, wymagany jest inny mechanizm.System.err
jestPrintWriter
, który mawrite(char)
metodę, ale nie mawrite(int)
. Umieszczenie'c' - 2
tam zmusza go dochar
użycia bez obsady.Wreszcie, za każdym razem, gdy uruchamiam program, bufor dla
System.err
nie będzie się opróżniał tak, jak powinien, a program nic nie drukował. Musiałem więc spłukać ręcznie. JednakSystem.err.flush()
nie jest dozwolone, więc zadzwoniłemprintln()
, które niejawnie opróżnia podstawowy strumień.źródło
MATL, 5 bajtów
Wypróbuj online
Wyjaśnienie
Mój oryginalny odpowiedź była prosta podejście do przodu za pomocą wstępnie zdefiniowane dosłowny
lY2
, który daje'A'...'Z'
a następnie wybierając pierwszy element,'A'
.źródło
JavaScript,
18 bajtów16 bajtów12 bajtów11 bajtówNa podstawie zmodyfikowanych jsfuck podstaw (musieli dowiedzieć się, jak wymienić
+
z-
).Ungolfed?
Cóż, przynajmniej wersja z komentarzami (pamiętaj, że ta wersja prawdopodobnie nie będzie działać):
Stare rozwiązanie:
źródło
3
jest to dozwolone, więc zastąpiłem to wszystko nudnym starym3-2
do zdobycia1
Vim,
16 13 1110 klawiszyDzięki H Walters za uratowanie dwóch kluczy
Dzięki DJMcMayhem za uratowanie kolejnego!
źródło
:h<cr>
, spróbuj:h%<cr>
. To jedna dodatkowa postać, ale kończysz na pomocy%
, gdy kursor znajduje się nad znakiem. Więc tutaj można wymienić33ll
zj
.ZZ
zamiast:q<cr>
zapisać inny.R,
2712 bajtówEDYCJA: Nowa wersja, z doskonałego pomysłu @Jarko Dubbeldam
Całkiem zabawne wyzwanie!
Zasadniczo bierze to
26th
element wektora odwróconego zawierającego wielkie litery (LETTERS
który jest wbudowanym wektorem R )Poprzednie wersje s (ta sama liczba bajtów) :
źródło
LETTERS[T*T]
.T
ocenia1
podczas wykonywania operacji numerycznych.> <> ,
74 bajtyZaoszczędzono 3 bajty dzięki pelikanowi Teal
Wypróbuj online!
Wyjaśnienie
źródło
"B"1-o;
Vim, 2 naciśnięcia klawiszy
vim -u NONE
następnie uruchom następujące polecenie (-u NONE
wyłącza dostosowywanie)Kiedy vim jest uruchomiony w trybie zgodnym, klawisze strzałek nie są poprawnie interpretowane.
<up>
zostanie zinterpretowany,<esc>OA
co pozostawia następujące elementy w trybie wstawiania. Który by odszedł (z kilkoma końcowymi znakami nowej linii)i
uruchamia tryb wstawiania.<up>
wychodzi z trybu wstawiania, otwiera linię powyżej i wprowadza A do buforaPrzykład ludzi, którzy spotykają się z tym na wolności. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748
źródło
Brainfuck,
19219 bajtówDzięki @NinjaBearMonkey za pomoc w oszczędzaniu bajtów hella
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.Nie jestem dobry w Brainfuck, więc jestem pewien, że istnieje krótsze rozwiązanie, ale działa ono poprzez zmniejszenie wartości poniżej 0, przewrócenie bajtu i kontynuowanie, aż spadnie do „A”, a następnie drukuje.źródło
JavaScript (ES6), 21 bajtów
Początkowo próbowałem przekonwertować
false
na ciąg, aby to zrobić, ale zajęło mi to 23 bajty. Od tego czasu wymyśliłem krótszą drogę, czyli 14 bajtów:Nie sądzę, że można uzyskać wielkie litery
A
zgodnie z regułami, ponieważ potrzebujesz jednegoString.fromCharCode
lub.toUpperCase()
obu, które zawierająa
.źródło
C, (19?) 24 bajty
Dzięki Dennis:
ta sama długość:
co umożliwia także małe litery:
Istnieje 19 bajtowe rozwiązanie jako funkcja modyfikująca jego parametr, który ma wadę:
Jeśli
c
został zadeklarowanychar
,g
modyfikuje całość,int
więc rozbija stos, co powoduje modyfikację innych wartości lub przerwanie programu z komunikatem o błędzie. Jedynym sposobem na obejście jest zadeklarowanieint c;
wmain
i drukować"%c"
, ale czuje się jak luki.starsze rozwiązania
Po prostu funkcja, ponieważ
main
jest zabroniona.źródło
88-23
powinien zaoszczędzić kilka bajtów.printf("%c",~'ɦ');
chociaż „A” będzie miał dodany znak akcentu hehɦ
jest dwubajtową postaciądc, 4 bajty
UCHAR_MAX przelewowy rolki przez stół
sześćtrzy razy przed wyładunkiem z 65.źródło
Lua, 36 bajtów
Ten mi zajęło, ponieważ wiele standardowych funkcji Lua są zabierane od reguł (wszystkie
math
,string.char
,string.match
,pairs
, nawetnext
)Wykorzystuje to fakt, że Lua ma globalny,
_VERSION
który zwykle zaczyna się od „Lua” (np.Lua 5.1
Lub podobny w przypadku innych wersji), więc jeśli nie zostanie uruchomiony w interpreterie innym niż główny nurt, trzecia postać będzie „a”Należy
{...}[3]
zgrupować wyniki,find
których wyniki obejmują również wskaźniki, w których pasował, a następnie zwrócić trzeci element, który jest dopasowanym znakiem (thea
)źródło
print(({type{}:find".(.)"})[3])
31 bajtówHaskell, 10 bajtów
Jako funkcja (a raczej instrukcja, ponieważ nie jest wymagane wprowadzanie danych)
Zrób sztuczkę. Wypróbuj na Ideone. Pełny program jest niemożliwy, ponieważ musiałby zawierać
main
.źródło
A
. Twoje funkcje po prostu go zwracają, a połączony program wyświetla je za pomocą,putChar
których używau
.print
i / lubdisplay
.A
należy wydrukować / wyświetlić i nie zwrócić.Brachylog , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
dc
87 bajtów-1B dzięki Dennisowi
Przesuwa 88, przesuwa 23, odejmuje, pozostawiając 65. Wydrukuj górę stosu (65) jako ciąg ASCII, bez końcowego znaku nowej linii.
Edytować:
Oto kilka innych sposobów, które wymyśliłem. Zasadniczo stała się grą „generowania liczb 65 i 97 przy użyciu tylko
[238B-F]
i bez dodatku”. Jak na ironię, najdłuższe uważam za najciekawsze.źródło