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>
Respuestas:
Carbón ,
181613 bytes-3 bytes gracias a @Neil !
Explicación
Pruébalo en línea! El enlace es a código detallado.
fuente
↘O
, puede pasar de 0 a N inclusive, lo que le ahorra dos bytes de inmediato.⁺¹
con⊕
. Sin embargo, ahora que ha movido el←
de‖C
alO
puede guardar otro byte escribiendo↙OMι↓
, así que vuelvo a guardar un byte de dos bytes nuevamente.C,
9392(Nota, alguien llegó a 87 en los comentarios)
Pruébalo en línea!
Legible:
Notas:
Puedo contraer ambos bucles en uno solo para iterar el número total de líneas generadas, que se obtiene mediante la fórmula:
n*-~n/2+1
Pero termina siendo aún más bytes que simplemente usando dos bucles for separados
fuente
s
al principio, así: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;
al principio y luego cambiary<=s
ay<s
ys-y+1
as-y
ys+1-n
as-n
, por lo que debe compilar (y debería ser de 91 bytes).Python 2 , 65 bytes
Pruébalo en línea!
fuente
GNU sed, 41
-r
banderas a sed.La entrada está en unario, como una cadena de espacios: la longitud de la cadena es la entrada.
Pruébalo en línea .
fuente
Python 2, 76 bytes
Bastante simple. El
i-x+1and i
es para evitar un montón de nuevas líneas finales.fuente
'\n'*(i-1)
ahorra 7 bytes mientras evita las nuevas líneas finales.MATL ,
1917 bytes¡Pruébalo en MATL Online! O verificar todos los casos de prueba .
Explicación
fuente
05AB1E ,
1814 bytesGuardado 4 bytes gracias a Adnan
Pruébalo en línea!
Explicación
fuente
ƒ¶N×'ONúRÂJ}.c
:).c
con una versión diferente, pero no funcionó bien entonces. Olvidé probarlo con este y olvidé queú
existe :)JavaScript (ES6),
9892898478 bytes(-20 bytes gracias a Arnauld!)
Una solución recursiva. Este es también mi primera vez respuesta en JavaScript, por favor suave! Todavía estoy aprendiendo todo lo que este lenguaje ordenado tiene para ofrecer, por lo que los consejos de golf son muy apreciados. :)
Fragmento de prueba
Es posible que deba desplazarse para ver la salida completa.
fuente
${}
solo guarda bytes cuando la parte variable está rodeada por partes estáticas. Como tal, estas cadenas siempre deben comenzar y terminar con partes estáticas.0
lugar de"0"
. Serán obligados a las cuerdas. Y pensándolo bien: eni++<v&&i
realidad es un byte más corto que(i<v)*++i
.RProgN 2 , 37 bytes
Entrar en mi tipo de lenguaje de golf antes de que entren los idiomas de golf adecuados.
Explicado
Pruébalo en línea!
fuente
Retina,
2919 bytesPruébalo en línea!
Toma entrada en unario como una serie de espacios. Puerto de mi respuesta de JavaScript. Editar: Guardado 10 bytes gracias a @ MartinEnder ♦.
fuente
Bash , 76 bytes
Solo funciona en una terminal ya que usa secuencias de escape ANSI .
›
representa el byte CSI ( 0x9b ).Prueba de funcionamiento
fuente
sed $nq
para guardar un byte.sed ${n}q
que es más largo.sed $n\q
, pero eso tampoco tiene mucho sentido, ¡ya que sería el mismo número de bytes quehead
!Retina, 35
Puerto de mi respuesta sed :
Pruébalo en línea .
fuente
R, 89 bytes
Este es mi primer intento de golf, comentarios bienvenidos ...
fuente
Röda ,
5352 bytesPruébalo en línea!
Uso:
main { f(5) }
Versión sin golf:
fuente
\n
y guardar 1 byte?Befunge,
7573 bytesPruébalo en línea!
La primera línea lee en la velocidad, v , y guarda una copia en la memoria. La segunda línea luego cuenta regresivamente de v a cero, con el índice i , y en cada iteración empuja una secuencia de pares de caracteres / longitud en la pila.
Esta secuencia representa un tipo de codificación de longitud de ejecución de la salida requerida a la inversa. Las últimas dos líneas simplemente eliminan estos pares de caracteres / longitud de la pila, generando apariciones de longitud de cada carácter , hasta que la pila esté vacía.
fuente
Java 8,
129124109 bytesGolfizado:
Pruébalo en línea!
Sin golf:
fuente
for(;j<v;++)
que funcionaría, porque en este momentoj==y
. Además, puede eliminar el tercero agregando una segunda variable de cadena dentro del bucle principal forString t="";
(12) yt+=" ";
(8) dentro del primer bucle anidado. A continuación, el tercer bucle sólo se convierte ens+="o"+t+"o";
for(j=0;j<v;++j)s+=j<y?"\n":" ";
aunque no estoy seguro de cómot
t=""
junto a s al principio, y luego agregart+=" "
cada ciclo después de hacerlos+="o"+t+"o"
Haskell, 69 bytes
Ejemplo de uso:
f 3
->" OO\n O O\n\n O O\n\n\nO O"
. Pruébalo en línea! .fuente
VBA,
1241128588666359 bytesAhorró 29 bytes en total gracias a Taylor Scott
Esto debe ejecutarse en la ventana Inmediato de VBA e imprimir el resultado en el mismo.
Ampliado / formateado, se convierte en:
(Resulta que la concatenación en un comando de impresión es automática sin un operador).
fuente
b & s &
Espacios alerta!b &s &String
pero nob&s&String
. Además, al principio pensé que querías usar laSpace
función que debería tener totalmente y que terminó ahorrando más bytes.for i=0 To v
ydebug.? b
haciafor i=0To v
yDebug.?b
, respectivamente, por-2
bytes. Y para que lo sepas, el consenso de la comunidad es que para los idiomas con autoformato, puedes contar antes de que se autoformete, lo que significa que después de realizar estos cambios deberías tener un recuento de bytes de 85 bytes[A1]
(v=[A1]
) Además, no creo que realmente necesite las
variable.;
al final del comando de impresión, porque seguía agregando un salto de línea adicional de forma predeterminada. ¡Gracias!05AB1E ,
1813 bytesPruébalo en línea!
fuente
Jalea ,
1716 bytesPruébalo en línea!
¿Cómo?
fuente
PHP, 76 bytes
Ejecutar
echo <v> | php -nR '<code>'
o probarlo en línea .$argn
baja en bucle desde la entrada hasta0
y$i
hacia arriba desde 0;imprime, en ese orden, en cada iteración
$i
nuevas líneas (ninguna en la primera iteración)$argn
espacioso
2*$i
espacioso
fuente
V ,
2319 bytesPruébalo en línea!
Explique
fuente
JavaScript (ES6), 87 bytes
Solución no recursiva. El requisito de indexación era molesto, tanto en lo anterior como en la siguiente solución recursiva de 62 bytes (no sé si resultaría en un puerto Retina más corto):
fuente
Perl 5 , 48 bytes
Código de 47 bytes + 1 para
-n
.Pruébalo en línea!
fuente
Apilado,
6763 bytesIntento inicial, 67 bytes
Programa completo Genera algo como:
Cuál es el acolchado, transpuesto, invertido y emitido
fuente
Lote, 163 bytes
fuente
Ruby, 52 bytes
Sin nueva línea final (permitido por las reglas: " como máximo una nueva línea final ")
fuente
AHK, 93 bytes
Si pudiera descubrir cómo hacer matemáticas dentro de la repetición de pulsaciones de teclas, sería genial.
-
VK20
equivale a un espacio- da como
FileAppend
resultadostdout
si el nombre de archivo es*
fuente
Haskell , 77 bytes
Pruébalo en línea! Uso:
(#0) 5
fuente
Python 2 , 59 bytes
Pruébalo en línea!
fuente