Inspiré par ce post . Pour ceux qui marquent cette question en double, je vous invite à lire la question pour voir que la mienne est une modification de celle liée. Celui lié ne demande pas d'entrée et doit simplement imprimer l'alphabet en diagonale.
Le défi
Étant donné une entrée comprise entre 1 et 26 inclusivement, imprimez l'alphabet en diagonale, mais commencez à imprimer verticalement à l'index de l'entrée donnée.
Exemples
Compte tenu de l'entrée:
16
Votre programme devrait produire:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Contribution:
4
Sortie:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Contribution:
1
Sortie:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Contribution:
26
Sortie:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Notation
C'est le golf de code , donc la réponse la plus courte dans chaque langue l'emporte.
Bonne chance!
Réponses:
Fusain , 9 octets
Essayez-le en ligne!
Comment ça marche
Cette solution ne fonctionne plus dans la version actuelle de Charcoal (très probablement en raison d'une correction de bogue), mais le problème est résolu pour 10 octets avec
↘✂β⁰N↓✂βIθ
.la source
Iθ
place deη
.)…βN
au lieu de✂β⁰N
.05AB1E , 11 octets
J'essaie pour la première fois 05AB1E, donc je suis ouvert aux conseils.
Essayez-le en ligne!
Si une entrée indexée zéro de
0
à25
est autorisée, cela peut être de 10 octets en omettant le<
.la source
JavaScript (ES2017),
73727166 octetsEnregistré quelques octets grâce à @JustinMariner
la source
10
aprèsz
à la fin en raison de l'avoir++x
avantx.toString()
. Correction d'un bug et golfé à 68 octets en utilisantpadStart
: TIOn=>g=(x=26)=>x?f(x-1)+(x+9).toString(36).padStart(x<n?x:n)+'\n':""
Python 2,
61 5857 octets-3 octets grâce à Rod
-1 octet de plus grâce à M. Xcoder
la source
input
chaque fois lafor
boucle serait répétée , même s'il n'y a qu'une seule ligne d'entrée.Rubis,
514643 octetsRenvoie une liste de chaînes.
On dirait que les gars de Python étaient sur quelque chose avec leurs abonnements. -5 octets en s'inspirant de l'amélioration de la solution de Ppperry par M. Xcoder.
Solution précédente avec
rjust
(51 octets):la source
Python 2 ,
625057 octetsEssayez-le en ligne!
Vole lourdement de cette réponse de Dennis.
la source
R,
9989 octets@MickeyT a sauvé 10 octets
une fonction
démo
la source
ifelse
essayezmin
.print.noquote
peut être remplacé parcat
un'\n'
dans la pâte. Il\n
peut s'agir d'un retour chariot simple. Les accolades pour le corps de la fonction peuvent être supprimées.write
plutôt quecat
etpaste
:write(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
Rétine ,
7268 octetsEssayez-le en ligne! La sortie comprend un espace de fin. Enregistrez 1 octet en supprimant l'espace avant
$
si l'indexation zéro est autorisée. Edit: enregistré 4 octets en utilisant le générateur d'alphabet de @ MartinEnder. Explication:Insérez l'alphabet.
Diagonalisez-le.
Convertissez l'entrée en unaire sous forme d'espaces.
Coupez les lignes trop longues de sorte qu'aucune ligne ne soit plus longue que la ligne vierge à la fin.
la source
Mathematica, 103 octets
la source
Pyth ,
211715 octetsFait sur un téléphone avec 3% de batterie.
Explication:
Essayez-le en ligne!
la source
Gelée , 11 octets
Essayez-le en ligne!
la source
Lisp commun, 84 octets
Essayez-le en ligne!
la source
Python , 52 octets
Assez surpris, personne n'a remarqué que l'approche évidente était aussi courte que les autres.
Essayez-le en ligne!
Python , 53 octets
Essayez-le en ligne!
la source
Haskell,
5854 octetsEssayez-le en ligne!
Comment ça marche
Modifier: @Lynn a enregistré 4 octets. Merci!
la source
['`'..]!!m
.Java (OpenJDK 8) , 69 octets
Essayez-le en ligne!
la source
Gaia , 12 octets
Essayez-le en ligne!
Explication
la source
JavaScript (Node.js) , 72 octets
Renvoie une liste de chaînes.
Essayez-le en ligne!
la source
.padStart
padEnd
au lieu derepeat
.Mathematica, 67 octets
Renvoie une
SparseArray
chaîne. Pour visualiser, ajoutezGrid@
devant.Essayez-le sur Wolfram Sandbox
Usage
la source
Python 2 , 52 octets
Essayez-le en ligne!
Je suppose qu'une liste de chaînes est bien ...
Le plus court possible avec la récursivité:
la source
SOGL V0.12 , 12 octets
Essayez-le ici!
la source
Python 3 , 52 octets
Essayez-le en ligne!
la source
C (gcc) , 50 octets
Essayez-le en ligne!
la source
Proton , 40 octets
En supposant qu'une liste de chaînes est bien.
Essayez-le en ligne!
Proton , 49 octets
Comme ASCII-art à la place:
Essayez-le en ligne!
la source
C # (.NET Core) , 66 + 18 octets
Le nombre d'octets comprend également
Essayez-le en ligne!
Cela renvoie une collection de chaînes, une pour chaque ligne. Si ce n'est pas autorisé, la réponse augmentera de 17 octets pour
string.Concat()
et à l'\n
intérieur de la chaîneExplication:
la source
MATL, 14 octets
Essayez-le sur MATL Online
Explication
la source
Pyth , 12 octets
Essayez-le ici!
Si les listes de chaînes sont autorisées, cela peut être raccourci à 11 octets :
Pyth , 12 octets
Essayez-le ici!
Pyth , 14 octets
Essayez-le ici.
Si les listes de chaînes sont autorisées, cela peut être raccourci à 13 octets :
Comment ça marche?
Contrairement à la plupart des autres réponses, cette carte / boucle sur l'alphabet en minuscules dans les 3 solutions.
Explication # 1
Explication # 2
Explication # 3
la source
Haskell, 60 octets
Il s'agit d'une fonction qui renvoie la sortie sous forme de chaîne.
Essayez-le en ligne.
la source
Japt ,
1613 octetsEnregistré 3 octets grâce à @Oliver
Testez-le en ligne!
la source
q / kdb +,
3331 octetsSolution:
Exemple:
Explication:
Créer une liste d'espaces (26) jusqu'à la longueur du minimum de l'entrée et de la plage de
0..25
), joindre à chaque lettre de l'alphabet, imprimer sur stdout.Remarques:
la source
Java 1.8 (sans Lambda), 98 octets
La logique est simple. Ne fournit aucune validation des données d'entrée, très mauvais!
la source
for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);
également, vous pouvez écrire uniquement une fonction, ou un lambda au lieu d'un programme complet.a[0]
réfère? Je pense que les extraits ne sont pas justes s'ils ne sont pas compilés; le défi est tout aussi intéressant avec un langage riche en constructions.void f(int i){...}
(pas de statique nécessaire) ou à lai->{...}
place de tout votre programme. Voir tous les conseils Java . Voir ma réponse pour ce même défi , comme exemple. Amusez-vous sur le site! :-)