var QUESTION_ID=111861,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/111861/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>
Respostas:
Carvão ,
181613 bytes-3 bytes graças a @Neil !
Explicação
Experimente online! Link é um código detalhado.
fonte
↘O
, poderá fazer um loop de 0 a N, inclusive, o que economiza dois bytes imediatamente.⁺¹
com⊕
. No entanto, agora que você moveu←
de do‖C
para o,O
pode salvar outro byte escrevendo↙OMι↓
, então voltarei ao salvamento de dois bytes novamente.C
9393(Note, alguém chegou a 87 nos comentários)
Experimente online!
Legível:
Notas:
Posso recolher ambos os loops em apenas um loop for iterando o número total de linhas emitidas, que é fornecido pela fórmula:
n*-~n/2+1
Mas acaba sendo ainda mais bytes do que apenas usar dois for-loops separados
fonte
s
no início, desta forma:y,n;f(s){++s;for(y=0;y<s;){printf("%*c%*c",s-y,79,y*2+1,79);for(n=++y;s-n&&n--;)puts("");}}
++s;
início e depois mudary<=s
paray<s
es-y+1
paras-y
es+1-n
paras-n
, portanto, ele deve ser compilado (e deve ter 91 bytes).Python 2 , 65 bytes
Experimente online!
fonte
GNU sed, 41
-r
sinalizadores para sed.A entrada é unária, como uma sequência de espaços - o comprimento da sequência é a entrada.
Experimente online .
fonte
Python 2, 76 bytes
Bem simples. O
i-x+1and i
objetivo é evitar um monte de novas linhas finais.fonte
'\n'*(i-1)
economiza 7 bytes, evitando as novas linhas à direita.MATL ,
1917 bytesExperimente no MATL Online! Ou verifique todos os casos de teste .
Explicação
fonte
05AB1E ,
1814 bytesGuardado 4 bytes graças a Adnan
Experimente online!
Explicação
fonte
ƒ¶N×'ONúRÂJ}.c
:).c
com uma versão diferente, mas não funcionou bem na época. Esqueceu sobre a tentativa lo com um presente e completa esqueceu queú
existe :)JavaScript (ES6),
9892898478 bytes(-20 bytes graças a Arnauld!)
Uma solução recursiva. Esta é também a minha primeira vez resposta em JavaScript, então por favor seja gentil! Ainda estou aprendendo tudo o que essa linguagem interessante tem a oferecer, por isso as dicas de golfe são muito apreciadas. :)
Snippet de teste
Pode ser necessário rolar para ver a saída inteira.
fonte
${}
apenas salva bytes quando a parte variável é cercada por partes estáticas. Como tal, essas cadeias sempre devem começar e terminar com peças estáticas.0
vez de"0"
. Eles serão coagidos a cordas. E pensando bem:i++<v&&i
na verdade, é um byte menor que(i<v)*++i
.RProgN 2 , 37 bytes
Entrando no meu tipo de linguagem de golfe antes que os idiomas adequados de golfe entrem.
Explicado
Experimente online!
fonte
Retina,
2919 bytesExperimente online!
Recebe entrada como unário como uma corrida de espaços. Porta da minha resposta JavaScript. Editar: salvou 10 bytes graças a @ MartinEnder ♦.
fonte
Bash , 76 bytes
Funciona apenas em um terminal, pois utiliza seqüências de escape ANSI .
›
representa o byte CSI ( 0x9b ).Execução de teste
fonte
sed $nq
para salvar um byte.sed ${n}q
que é mais longo.sed $n\q
, mas isso também não faz muito sentido, pois seria a mesma contagem de bytes quehead
!Retina, 35
Porto da minha resposta sed :
Experimente online .
fonte
R, 89 bytes
Esta é a minha primeira tentativa de golfe, comentários bem-vindos ...
fonte
Röda ,
5352 bytesExperimente online!
Uso:
main { f(5) }
Versão não destruída:
fonte
\n
salvar 1 byte?Befunge,
7573 bytesExperimente online!
A primeira linha lê a velocidade, ve salva uma cópia na memória. A segunda linha faz uma contagem regressiva de v para zero, com o índice ie , em cada iteração, empurra uma sequência de pares de caracteres / comprimento para a pilha.
Essa sequência representa um tipo de codificação de execução da saída necessária no sentido inverso. As duas últimas linhas simplesmente retiram esses pares de caracteres / comprimento da pilha, produzindo ocorrências de comprimento de cada caractere , até que a pilha esteja vazia.
fonte
Java 8,
129124109 bytesGolfe:
Experimente online!
Ungolfed:
fonte
for(;j<v;++)
que funcionaria, porque neste momentoj==y
. Além disso, você pode remover a terceira adicionando uma segunda variável de cadeia dentro do loop for principalString t="";
(12) et+=" ";
(8) dentro do primeiro loop aninhado. Em seguida, o terceiro ciclo só se tornas+="o"+t+"o";
for(j=0;j<v;++j)s+=j<y?"\n":" ";
embora eu não tenho certeza como isso malhas com o meu comentário anterior sobret
t=""
junto s no início, e depois adicionart+=" "
cada laço em torno depois de fazers+="o"+t+"o"
Haskell, 69 bytes
Exemplo de uso:
f 3
->" OO\n O O\n\n O O\n\n\nO O"
. Experimente online! .fonte
VBA,
1241128588666359 bytesEconomizado 29 bytes no total graças a Taylor Scott
Isso deve ser executado na janela Imediata do VBA e imprimir o resultado da mesma forma.
Expandido / Formatado, torna-se:
(Acontece que a concatenação em um comando de impressão é automática sem um operador.)
fonte
b & s &
Alerta de espaços!b &s &String
mas nãob&s&String
. Além disso, no começo, pensei que você pretendia usar aSpace
função que eu deveria ter e que acabou economizando mais bytes.for i=0 To v
edebug.? b
parafor i=0To v
eDebug.?b
, respectivamente, para-2
bytes. E só assim você sabe, o consenso da comunidade é que para idiomas com formatação automática, você pode contar antes de ser Autoformatted, ou seja, depois de fazer essas alterações, você deve ter uma contagem de bytes de 85 Bytes[A1]
(v=[A1]
) Além disso, não acho que você realmente precise das
variável.;
no final do comando de impressão, porque ele continuava adicionando uma quebra de linha extra por padrão. Obrigado!05AB1E ,
1813 bytesExperimente online!
fonte
Geléia ,
1716 bytesExperimente online!
Quão?
fonte
PHP, 76 bytes
Execute
echo <v> | php -nR '<code>'
ou teste on-line .lacetes
$argn
para baixo a partir da entrada para0
e$i
a partir de 0;imprime - nessa ordem - em cada iteração
$i
novas linhas (nenhuma na primeira iteração)$argn
espaçoso
2*$i
espaçoso
fonte
V ,
2319 bytesExperimente online!
Explicar
fonte
JavaScript (ES6), 87 bytes
Solução não recursiva. O requisito de indexação era irritante, tanto na solução recursiva anterior quanto nos seguintes 62 bytes (não sei se resultaria em uma porta Retina mais curta):
fonte
Perl 5 , 48 bytes
Código de 47 bytes + 1 para
-n
.Experimente online!
fonte
Empilhados,
6763 bytesTentativa inicial, 67 bytes
Programa completo. Gera algo como:
Qual é o preenchido, transposto, revertido e emitido.
fonte
Lote, 163 bytes
fonte
Ruby, 52 bytes
Nenhuma nova linha final (permitida pelas regras: " no máximo uma nova linha final ")
fonte
AHK, 93 bytes
Se eu conseguisse descobrir como fazer matemática, pressionando repetidamente as teclas, isso seria ótimo.
-
VK20
equivale a um espaço-
FileAppend
gera comostdout
se o nome do arquivo for*
fonte
Haskell , 77 bytes
Experimente online! Uso:
(#0) 5
fonte
Python 2 , 59 bytes
Experimente online!
fonte