Um meme atual da Internet é digitar 2spooky4me, com uma segunda pessoa digitando 3spooky5me, seguindo o (n)spooky(n+2)me
padrão.
Sua missão é implementar esse padrão no idioma escolhido. Você deve escrever um programa ou função que use um valor n
(da entrada padrão, como argumento da função ou alternativa mais próxima) e produza a string (n)spooky(n+2)me
(sem parênteses; na saída padrão, como valor de retorno de uma função ou alternativa mais próxima) )
Sua solução deve funcionar para todas as entradas, de 1
até 2 abaixo do valor inteiro máximo representável do seu idioma ( 2^32-3
para C em uma máquina de 32 bits, por exemplo).
Exemplo de implementação em Python:
def spooky(n):
return "%dspooky%dme"%(n,n+2)
spooky(2) -> "2spooky4me"
Isso é código-golfe , portanto , brechas comuns são proibidas e a resposta mais curta em bytes vence!
Entre os melhores
O snippet de pilha na parte inferior desta postagem gera o cabeçalho das respostas a) como uma lista da solução mais curta por idioma eb) como um cabeçalho geral.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
## Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
## Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet:
## [><>](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
, valide e retorne em seguida na série.Respostas:
gs2, 15 bytes
Eu superei Dennis!
CP437:
Despejo hexagonal:
No início do programa, STDIN é pressionado (por exemplo, a string
"3"
) e armazenado na variávelA
. Os primeiros dez bytes do programa enviam duas strings"spooky"
e"me"
para a pilha. Então:d0
empurra variávelA
.56
analisa como um número.12
30
aumenta em dois.42
troca os dois principais elementos da pilha, saindo"3" "spooky" 5 "me"
.A pilha final é impressa como
3spooky5me
.fonte
GS2, 17 bytes
NÃO PODE OUTGOLF DENNIS AJUDAR
fonte
Preso, 17 bytes
EDIT: Acho que você poderia dizer que estou preso aos 17 bytes
fonte
GolfScript, 17 bytes
Experimente online no Web GolfScript .
Como funciona
fonte
CJam, 18 bytes
Experimente online.
fonte
Pitão - 17 bytes
Experimente online aqui .
fonte
Chef, 414 bytes
Uma receita para o desastre. Não tente isso em casa.
fonte
TeaScript, 18 bytes
Infelizmente, essa string não pode ser compactada, portanto é basicamente o mais curto possível.
fonte
Pip, 18 bytes
Parece que estou no segundo nível de idiomas de golfe aqui. : ^ P
Pega o número como um argumento de linha de comando e coloca os elementos apropriados em uma matriz, que é unida e impressa automaticamente no final do programa.
fonte
dc, 20 bytes
fonte
Japonês,
1716 bytesJapt ( Ja vascri pt encurtado) é uma linguagem da minha invenção. É mais novo que esse desafio; portanto, essa resposta não é competitiva. Ao contrário das minhas outras sete línguas não publicadas, esta possui um intérprete real que está sendo desenvolvido e já está parcialmente funcionando.
Eu queria postar isso porque gosto de ter o mesmo tamanho de todas as respostas existentes do
primeiro lugar dosegundo lugar. Veja como funciona:E aí está. As especificações para todas as funcionalidades usadas aqui foram finalizadas em 29 de outubro; nada foi alterado para tornar essa resposta mais curta. Aqui está o intérprete , como prometido.
fonte
{U}2me
em vez de{U+2}me
: PGol> <> , 21 bytes
Acho que estou ... amarrado com Perl? Experimente online .
fonte
Vitsy, 21 bytes
Nota: o
Z
comando foi feito após o início desse desafio, mas não foi feito para esse desafio.Mais variação de spoopy usando várias pilhas (27 bytes):
Experimente online!
fonte
Julia, 23 bytes
Isso cria uma função lambda sem nome que aceita um número inteiro e retorna uma sequência. A saída é construída usando a interpolação de seqüência de caracteres de Julia.
fonte
Ruby, 25 bytes
Isso cria uma lambda sem nome que aceita um número inteiro e retorna uma string. A string é construída usando a interpolação de string do Ruby.
fonte
APL,
2522 bytesIsso cria um trem de função monádica sem nome que aceita um número inteiro à esquerda e retorna uma string.
Valores numéricos são convertidos em cadeias usando
⍕
. A matriz de cadeias é unida em uma única cadeia usando∊
.Experimente online
Economizou 3 bytes graças a Thomas Kwa!
fonte
Javascript (ES6)
2321 bytesUma função simples que será esmagada pelos lanqs de golfe:
Agradecimentos especiais à ETHproductions por economizar 2 bytes
fonte
_=>_+`spooky${_+2}me`
05AB1E,
1410 bytesExperimente online.
Não competir desde 05AB1E é mais novo que esse desafio.
Explicação
fonte
D
9 bytes removidosPHP,
5547464234 bytesAceita o número como entrada da linha de comando.
Créditos :)
Obrigado ao manatwork por economizar 4 bytes!
Obrigado a insertusernamehere por salvar 8 bytes!
fonte
function a($a){echo$a,"spooky",$a+2,"me";}
"
s. Você pode até mesmo salvar mais 4 bytes , tendo um argumento de linha de comando e descartar a função, assim:<?=($a=$argv[1]).spooky.($a+2).me;
.Chaîne , 15 bytes
não-concorrente, pergunta pós-datas de idiomas
Saída implícita.
fonte
Python, 31 bytes
Peça e você receberá.
fonte
lambda n:f'{n}spooky{n+2}me'
para 28 bytes.Simplex v.0.7 , 20 bytes
Hoje, o Simplex simplesmente não está se sentindo muito satisfeito. > _ <
fonte
C, 58 bytes
atoi()
pode ser desnecessário.fonte
gcc
, porque depende da ordem de avaliação. 2. Salve um byte comint**b
.Mathematica,
4527 bytesg=ToString[#]<>"spooky"<>ToString[#+2]<>"me"&
Agradecemos a Martin Büttner pela melhoria significativa (e pela calorosa recepção).
fonte
g=
e acho quePrint[#,"spooky",#+2,"me"]&
deve funcionar também. :)Row@{#,spooky,#+2,me}&
? A saída é visualmente semelhante se as variáveis não estiverem definidas.Minkolang 0.10 , 49 bytes
Não tenho como converter números inteiros em seqüências de caracteres (ainda!), Portanto isso é muito mais longo.
Experimente aqui.
Explicação
(dl%"0"+$rl:d)
faz o trabalho de converter um int em uma string. Se isso fosse substituído por um único caractere (comoZ
), minha solução seria de apenas 23 bytes .nd
pega um número inteiro da entrada e o duplica.2+
adiciona 2 e2g
mais tarde obtém a entrada inicial e a coloca no topo da pilha.$O.
gera a pilha inteira como números inteiros e para.fonte
Lua para windows, 41 bytes
teste com lua para windows
leva a entrada através de io.read, em seguida, armazenada na variável n, na mesma linha imprime a variável n, em seguida, "spooky", em seguida, n + 2 finalmente, imprime "me"
fonte
n=io.read()print(n.."spooky"..n+2.."me")
2.
em branco será tratado como um número.print(.....'spooky'.. ...+2 ..'me')
Como executar:lua51.exe p.lua 2
Size = 35 bytes.Rotor, 15 bytes
A linguagem foi criada após o desafio. Não funciona no intérprete online (usa avaliação de entrada).
fonte
Cookie , 16 bytes (não concorrente)
Observe que as recentes alterações na página do Github não foram feitas para esse desafio. O Cookie ainda está em desenvolvimento.
Explicação:
fonte
Gelatina, não concorrente
13 bytes Esta resposta não é competitiva, pois o desafio antecede a criação do Jelly.
NÃO POSSO SABER QUARTATA AJUDAR
Experimente online!
Como funciona
fonte
+2ṭż“×¥X“ŀ`»
Perl 5 ,
2019 bytesO código requer a
-p
troca. Graças a @Xcali por jogar fora um byte!Experimente online!
fonte