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>
Réponses:
Charbon de bois ,
181613 octets-3 octets grâce à @Neil !
Explication
Essayez-le en ligne! Le lien est en code verbeux.
la source
↘O
alors vous pouvez utiliser la boucle de 0 à N inclus, ce qui vous évite immédiatement deux octets.⁺¹
avec⊕
. Cependant, maintenant que vous avez déplacé le←
de le‖C
vers le,O
vous pouvez enregistrer un autre octet en écrivant↙OMι↓
. Je suis donc revenu à l'enregistrement sur deux octets.C,
9392(Remarque, quelqu'un a 87 dans les commentaires)
Essayez-le en ligne!
Lisible:
Remarques:
Je peux réduire les deux boucles for en une boucle en itérant le nombre total de lignes générées, ce qui est donné par la formule:
n*-~n/2+1
Mais il finit par être encore plus d'octets que d'utiliser simplement deux boucles for séparées.
la source
s
au début, commey,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;
début, puis changery<=s
ày<s
ets-y+1
às-y
ets+1-n
às-n
, il devrait donc compiler (et devrait être 91 octets).Python 2 , 65 octets
Essayez-le en ligne!
la source
GNU sed, 41
-r
drapeaux au sed.L'entrée est unaire, comme une chaîne d'espaces - la longueur de la chaîne est l'entrée.
Essayez-le en ligne .
la source
Python 2, 76 octets
Assez simple. Le
i-x+1and i
est d'éviter un tas de nouvelles lignes de fuite.la source
'\n'*(i-1)
enregistriez 7 octets tout en évitant les nouvelles lignes.MATL ,
1917 octetsEssayez-le sur MATL Online! Ou vérifiez tous les cas de test .
Explication
la source
05AB1E ,
1814 octets4 octets sauvés grâce à Adnan
Essayez-le en ligne!
Explication
la source
ƒ¶N×'ONúRÂJ}.c
:).c
avec une version différente, mais cela n'a pas bien fonctionné à ce moment-là. Oublié d'essayer avec celui-ci et complète oublié quiú
existe :)JavaScript (ES6),
9892898478 octets(-20 octets grâce à Arnauld!)
Une solution récursive. Ceci est ma première jamais réponse en JavaScript, donc s'il vous plaît soyez doux! J'apprends encore tout ce que ce langage a à offrir, alors les astuces pour jouer au golf sont très appréciées. :)
Test Snippet
Vous devrez peut-être faire défiler pour voir la sortie entière.
la source
${}
uniquement l'enregistrement des octets lorsque la partie variable est entourée de parties statiques. En tant que tels, ces chaînes doivent toujours commencer et se terminer par des parties statiques.0
au lieu de"0"
. Ils seront forcés à des ficelles. Et à la réflexion:i++<v&&i
est en fait un octet plus court que(i<v)*++i
.RProgN 2 , 37 octets
Entrer dans ma langue de golfy avant que les langauges golfy appropriés n'interviennent.
A expliqué
Essayez-le en ligne!
la source
Retina,
2919 octetsEssayez-le en ligne!
Prend des entrées unaires comme une série d'espaces. Port de ma réponse JavaScript. Edit: 10 octets enregistrés grâce à @ MartinEnder ♦.
la source
Bash , 76 octets
Ne fonctionne que dans un terminal car il utilise des séquences d'échappement ANSI .
›
représente l'octet CSI ( 0x9b ).Essai
la source
sed $nq
pour sauvegarder un octet.sed ${n}q
ce qui est plus long.sed $n\q
place, mais cela n’a pas beaucoup de sens non plus, car ce serait le même nombre d’octets quehead
!Rétine, 35
Port de ma réponse sed :
Essayez-le en ligne .
la source
R, 89 octets
Ceci est ma première tentative de golf, commentaires bienvenus ...
la source
Röda ,
5352 octetsEssayez-le en ligne!
Usage:
main { f(5) }
Version non-golfée:
la source
\n
et économiser 1 octet?Befunge,
7573 octetsEssayez-le en ligne!
La première ligne lit la vélocité, v , et enregistre une copie en mémoire. La deuxième ligne décompte ensuite de v à zéro, avec l’indice i , et à chaque itération pousse une séquence de paires caractère / longueur sur la pile.
Cette séquence représente une sorte de codage de longueur d'exécution de la sortie requise en sens inverse. Les deux dernières lignes séparent alors simplement ces paires caractère / longueur de la pile, en affichant les occurrences de longueur de chaque caractère , jusqu'à ce que la pile soit vide.
la source
Java 8,
129124109 octetsGolfé:
Essayez-le en ligne!
Ungolfed:
la source
for(;j<v;++)
cela fonctionnerait, car pour le momentj==y
. En outre, vous pouvez supprimer la troisième en ajoutant une deuxième variable de chaîne à l'intérieur de la boucle principale forString t="";
(12) ett+=" ";
(8) à l'intérieur de la première boucle imbriquée. La troisième boucle devient alorss+="o"+t+"o";
for(j=0;j<v;++j)s+=j<y?"\n":" ";
bien que je ne sois pas sûr que cela corresponde à mon commentaire précédent à propos det
t=""
aux côtés de s au début, puis ajoutert+=" "
chaque boucle après celas+="o"+t+"o"
Haskell, 69 octets
Exemple d'utilisation:
f 3
->" OO\n O O\n\n O O\n\n\nO O"
. Essayez-le en ligne! .la source
VBA,
1241128588666359 octetsEnregistrement de 29 octets au total grâce à Taylor Scott
Ceci doit être exécuté dans la fenêtre Immédiate VBA et imprimer le résultat dans le même état.
Développé / Formaté, il devient:
(Il s'avère que la concaténation dans une commande d'impression est automatique sans opérateur.)
la source
b & s &
Espaces alerte!b &s &String
mais pasb&s&String
. De plus, au début, je pensais que vous vouliez utiliser laSpace
fonction que j’aurais dû et qui a permis d’économiser plus d’octets.for i=0 To v
etdebug.? b
tofor i=0To v
etDebug.?b
, respectivement pour les-2
octets. Et juste pour que vous sachiez, le consensus de la communauté est que pour les langues avec autoformatting, vous pouvez compter avant qu'elle ne soit autoformaté, ce qui signifie qu'après avoir apporté ces modifications, vous devriez avoir un nombre d'octets de 85 Octets[A1]
(v=[A1]
). De plus, je ne pense pas que vous ayez besoin de las
variable.;
à la fin de la commande print, car cela continuait à ajouter un saut de ligne supplémentaire par défaut. Merci!05AB1E ,
18 à13 octetsEssayez-le en ligne!
la source
Gelée ,
17 à16 octetsEssayez-le en ligne!
Comment?
la source
PHP, 76 octets
Courez avec
echo <v> | php -nR '<code>'
ou testez-le en ligne .boucles
$argn
vers le bas à partir de l' entrée0
et$i
à partir de 0;imprime - dans cet ordre - à chaque itération
$i
nouvelles lignes (aucune dans la première itération)$argn
espaceso
2*$i
espaceso
la source
V ,
2319 octetsEssayez-le en ligne!
Explique
la source
JavaScript (ES6), 87 octets
Solution non récursive. L'exigence d'indexation était ennuyeuse, à la fois dans la solution récursive ci-dessus et dans les 62 octets suivants (je ne sais pas si cela entraînerait un port de rétine plus court):
la source
Perl 5 , 48 octets
Code de 47 octets + 1 pour
-n
.Essayez-le en ligne!
la source
Empilé,
67 à63 octetsTentative initiale, 67 octets
Programme complet. Génère quelque chose comme:
Qui est le rembourré, transposé, inversé et sorti.
la source
Lot, 163 octets
la source
Ruby, 52 octets
Pas de nouvelle ligne finale (autorisée par les règles: " au plus une nouvelle ligne finale ")
la source
AHK, 93 octets
Si je pouvais comprendre comment faire les mathématiques en répétant les frappes au clavier, ce serait formidable.
-
VK20
équivaut à un espace-
FileAppend
renvoiestdout
si le nom du fichier est*
la source
Haskell , 77 octets
Essayez-le en ligne! Usage:
(#0) 5
la source
Python 2, 59 bytes
Try it online!
la source