Obecnym memem internetowym jest wpisywanie 2spooky4me, a druga osoba wpisuje 3spooky5me, zgodnie ze (n)spooky(n+2)me
wzorem.
Twoim zadaniem jest wdrożenie tego wzoru w wybranym języku. Powinieneś napisać program lub funkcję, która pobiera wartość n
(ze standardowego wejścia jako argumentu funkcji lub najbliższej alternatywy) i wypisuje ciąg znaków (n)spooky(n+2)me
(bez nawiasów; do standardowego wyjścia, jako wartość zwracaną dla funkcji lub najbliższą alternatywę ).
Twoje rozwiązanie powinno działać dla wszystkich danych wejściowych, od 1
maksymalnie 2 poniżej maksymalnej reprezentowanej liczby całkowitej w twoim języku (na przykład 2^32-3
dla C na komputerze 32-bitowym).
Przykładowa implementacja w Pythonie:
def spooky(n):
return "%dspooky%dme"%(n,n+2)
spooky(2) -> "2spooky4me"
To jest golf golfowy , więc standardowe luki są zabronione, a najkrótsza odpowiedź w bajtach wygrywa!
Tabela liderów
Fragment kodu na dole tego postu generuje tabelę wyników na podstawie odpowiedzi a) jako lista najkrótszych rozwiązań dla każdego języka oraz b) jako ogólna tabela wyników.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
## Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:
## Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
<style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }</style><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="language-list"> <h2>Shortest Solution 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> <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> <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><script>var QUESTION_ID = 62350; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 45941; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function commentUrl(index, answers) { return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER; } function getAnswers() { jQuery.ajax({ url: answersUrl(answer_page++), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { answers.push.apply(answers, data.items); answers_hash = []; answer_ids = []; data.items.forEach(function(a) { a.comments = []; var id = +a.share_link.match(/\d+/); answer_ids.push(id); answers_hash[id] = a; }); if (!data.has_more) more_answers = false; comment_page = 1; getComments(); } }); } function getComments() { jQuery.ajax({ url: commentUrl(comment_page++, answer_ids), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { data.items.forEach(function(c) { if (c.owner.user_id === OVERRIDE_USER) answers_hash[c.post_id].comments.push(c); }); if (data.has_more) getComments(); else if (more_answers) getAnswers(); else process(); } }); } getAnswers(); var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/; var OVERRIDE_REG = /^Override\s*header:\s*/i; function getAuthorName(a) { return a.owner.display_name; } function process() { var valid = []; answers.forEach(function(a) { var body = a.body; a.comments.forEach(function(c) { if(OVERRIDE_REG.test(c.body)) body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>'; }); var match = body.match(SCORE_REG); if (match) valid.push({ user: getAuthorName(a), size: +match[2], language: match[1], link: a.share_link, }); else console.log(body); }); valid.sort(function (a, b) { var aB = a.size, bB = b.size; return aB - bB }); var languages = {}; var place = 1; var lastSize = null; var lastPlace = 1; valid.forEach(function (a) { if (a.size != lastSize) lastPlace = place; lastSize = a.size; ++place; var answer = jQuery("#answer-template").html(); answer = answer.replace("{{PLACE}}", lastPlace + ".") .replace("{{NAME}}", a.user) .replace("{{LANGUAGE}}", a.language) .replace("{{SIZE}}", a.size) .replace("{{LINK}}", a.link); answer = jQuery(answer); jQuery("#answers").append(answer); var lang = a.language; lang = jQuery('<a>'+lang+'</a>').text(); languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang.toLowerCase(), user: a.user, size: a.size, link: a.link}; }); var langs = []; for (var lang in languages) if (languages.hasOwnProperty(lang)) langs.push(languages[lang]); langs.sort(function (a, b) { if (a.lang_raw > b.lang_raw) return 1; if (a.lang_raw < b.lang_raw) return -1; return 0; }); for (var i = 0; i < langs.length; ++i) { var language = jQuery("#language-template").html(); var lang = langs[i]; language = language.replace("{{LANGUAGE}}", lang.lang) .replace("{{NAME}}", lang.user) .replace("{{SIZE}}", lang.size) .replace("{{LINK}}", lang.link); language = jQuery(language); jQuery("#languages").append(language); } }</script>
%dspooky%dme
, sprawdź i wróć w serii.Odpowiedzi:
gs2, 15 bajtów
Wygrałem z Dennisa!
CP437:
Zrzut szesnastkowy:
Na początku programu STDIN jest wypychany (np. Ciąg
"3"
) i zapisywany w zmiennejA
. Pierwsze dziesięć bajtów programu wypycha dwa ciągi"spooky"
i"me"
na stos. Następnie:d0
wypycha zmiennąA
.56
analizuje to jako liczbę.12
30
zwiększa to o dwa.42
zamienia dwa górne elementy na stosie, pozostawiając"3" "spooky" 5 "me"
.Ostatni stos jest drukowany jako
3spooky5me
.źródło
GS2, 17 bajtów
NIE MOGĘ WYCHŁAĆ POMOCY DENNISA
źródło
Utknął, 17 bajtów
EDYCJA: CHYBA, ŻE POWINIENEŚ POWIEDZIEĆ, ŻE JESTEM STUCK W 17 BĘDZIE
źródło
GolfScript, 17 bajtów
Wypróbuj online na Web GolfScript .
Jak to działa
źródło
CJam, 18 bajtów
Wypróbuj online.
źródło
Pyth - 17 bajtów
Wypróbuj online tutaj .
źródło
Szef kuchni, 414 bajtów
Przepis na katastrofę. Nie próbuj tego w domu.
źródło
TeaScript, 18 bajtów
Niestety tego ciągu nie można skompresować, więc jest on tak krótki, jak to tylko możliwe
źródło
Pip, 18 bajtów
Wygląda na to, że jestem tutaj na drugim poziomie języków golfowych. : ^ P
Pobiera liczbę jako argument wiersza polecenia i umieszcza odpowiednie elementy w tablicy, która jest łączona razem i drukowana automatycznie na końcu programu.
źródło
dc, 20 bajtów
źródło
Japt,
1716 bajtówJapt ( Ja vascri pt skrócony) to język mojego wynalazku. Jest nowszy niż to wyzwanie; dlatego odpowiedź ta nie jest konkurencyjna. W przeciwieństwie do moich pozostałych siedmiu niepublikowanych języków, ten ma aktualnie rozwijanego tłumacza, który już częściowo działa.
Chciałem to opublikować, ponieważ podoba mi się, że ma taką samą długość jak wszystkie istniejące odpowiedzi na
pierwszym miejscu nadrugim miejscu. Oto jak to działa:I masz to. Specyfikacja wszystkich użytych tu funkcji została sfinalizowana 29 października; nic się nie zmieniło, by ta odpowiedź była krótsza. Oto tłumacz , zgodnie z obietnicą.
źródło
{U}2me
zamiast{U+2}me
: PGol> <> , 21 bajtów
Chyba jestem ... związany z Perlem? Wypróbuj online .
źródło
Vitsy, 21 bajtów
Uwaga:
Z
polecenie zostało wydane po rozpoczęciu tego wyzwania, ale nie zostało wykonane dla tego wyzwania.Bardziej różnorodne spoopy przy użyciu wielu stosów (27 bajtów):
Wypróbuj online!
źródło
Julia, 23 bajty
Tworzy to nienazwaną funkcję lambda, która akceptuje liczbę całkowitą i zwraca ciąg znaków. Dane wyjściowe są konstruowane przy użyciu interpolacji ciągów Julii.
źródło
Rubin, 25 bajtów
To tworzy nienazwaną lambda, która akceptuje liczbę całkowitą i zwraca ciąg znaków. Ciąg jest konstruowany przy użyciu interpolacji napisów Ruby.
źródło
APL,
2522 bajtówTworzy to nienazwany ciąg funkcji monadycznych, który akceptuje liczbę całkowitą po lewej stronie i zwraca ciąg znaków.
Wartości liczbowe są konwertowane na ciągi za pomocą
⍕
. Tablica ciągów jest łączona w pojedynczy ciąg za pomocą∊
.Wypróbuj online
Zaoszczędź 3 bajty dzięki Thomasowi Kwa!
źródło
JavaScript (ES6)
2321 bajtówProsta funkcja, która zostanie zmiażdżona przez gry w golfa lanqs:
Specjalne podziękowania dla ETHproductions za oszczędność 2 bajtów
źródło
_=>_+`spooky${_+2}me`
05AB1E,
1410 bajtówWypróbuj online.
Brak konkurencji od 05AB1E jest nowszy niż to wyzwanie.
Wyjaśnienie
źródło
D
usuniętymi dla 9 bajtówPHP,
5547464234 bajtyAkceptuje liczbę jako dane wejściowe z wiersza poleceń.
Kredyty :)
Dziękujemy za zaoszczędzenie 4 bajtów!
Dzięki inserttusernamehere za zapisanie 8 bajtów!
źródło
function a($a){echo$a,"spooky",$a+2,"me";}
"
s. Można nawet Zapisz 4 więcej bajtów poprzez linię poleceń i odrzucić argumenty funkcji w następujący sposób:<?=($a=$argv[1]).spooky.($a+2).me;
.Chaîne , 15 bajtów
pytanie niekonkurencyjne, język postdatates
Wyjściowy wynik.
źródło
Python, 31 bajtów
Zapytaj a dostaniesz.
źródło
lambda n:f'{n}spooky{n+2}me'
dla 28 bajtów.Simplex v.0.7 , 20 bajtów
Simplex po prostu dzisiaj nie czuje się golfistą. > _ <
źródło
C, 58 bajtów
atoi()
może być niepotrzebne.źródło
gcc
działa, ponieważ zależy to od kolejności oceny. 2. Zapisz bajt za pomocąint**b
.Mathematica,
4527 bajtówg=ToString[#]<>"spooky"<>ToString[#+2]<>"me"&
Podziękowania dla Martina Büttnera za znaczną poprawę (i ciepłe powitanie).
źródło
g=
i myślę, żePrint[#,"spooky",#+2,"me"]&
powinno również działać. :)Row@{#,spooky,#+2,me}&
? Dane wyjściowe są wizualnie podobne, jeśli zmienne nie są zdefiniowane.Minkolang 0,10 , 49 bajtów
Nie mam sposobu na konwersję liczb całkowitych na ciągi (jeszcze!), Więc jest to znacznie dłużej.
Wypróbuj tutaj.
Wyjaśnienie
(dl%"0"+$rl:d)
wykonuje konwersję int na ciąg. Gdyby to zostało zastąpione jednym znakiem (jakZ
), wtedy moje rozwiązanie miałoby tylko 23 bajty .nd
pobiera z wejścia liczbę całkowitą i kopiuje ją.2+
dodaje 2, a2g
później pobiera początkowe dane wejściowe i umieszcza je na szczycie stosu.$O.
wypisuje cały stos jako liczby całkowite i zatrzymuje się.źródło
Lua na Windows, 41 bajtów
przetestuj z lua dla Windows
pobiera dane wejściowe przez io.read, a następnie przechowywane w zmiennej n, a następnie w tym samym wierszu wypisuje zmienną n, a następnie „upiornie”, a następnie n + 2, w końcu wypisuje „ja”
źródło
n=io.read()print(n.."spooky"..n+2.."me")
2.
będą traktowane jako liczby.print(.....'spooky'.. ...+2 ..'me')
Jak uruchomić:lua51.exe p.lua 2
Rozmiar = 35 bajtów.Wirnik, 15 bajtów
Język powstał po wyzwaniu. Nie działa w tłumaczu online (używa eval danych wejściowych).
źródło
Ciasteczko , 16 bajtów (niekonkurujące)
Pamiętaj, że ostatnie zmiany na stronie Github nie zostały wprowadzone dla tego wyzwania, Cookie jest wciąż w fazie rozwoju.
Wyjaśnienie:
źródło
Galaretka, niekonkurująca
13 bajtów Ta odpowiedź nie konkuruje, ponieważ wyzwanie poprzedza powstanie galaretki.
NIE MOGĘ PRZECZYTAĆ POMOCY KWARTANYCH
Wypróbuj online!
Jak to działa
źródło
+2ṭż“×¥X“ŀ`»
Perl 5 ,
2019 bajtówKod wymaga
-p
przełącznika. Dzięki @Xcali za grę w golfa z 1 bajtu!Wypróbuj online!
źródło