Votre tâche consiste à produire un Magical 8 Trapezium:
1 × 8 + 1 = 9
12 × 8 + 2 = 98
123 × 8 + 3 = 987
1234 × 8 + 4 = 9876
12345 × 8 + 5 = 98765
123456 × 8 + 6 = 987654
1234567 × 8 + 7 = 9876543
12345678 × 8 + 8 = 98765432
123456789 × 8 + 9 = 987654321
- Sortie dans la langue de votre choix dans le moins d'octets possible.
- Notez le nombre d'espaces au début de chaque ligne pour conserver la forme du trapèze.
- Les espaces de fuite sont autorisés.
- Vous pouvez utiliser
×
la lettre x ou celle que vous préférez.
code-golf
kolmogorov-complexity
rybo111
la source
la source
Réponses:
Python 2, 59 octets
Les nombres
a
eti
l'équationa * 8 + i
sont générés de manière arithmétique. Chaque lignei
est incrémentée eta
le chiffre suivant est ajouté viaa=a*10+i
. Par exemple, sia=12345, i=5
,i
devient6
, le nouveaua
est12345*10 + 6
ce qui est123456
.Le stockage de ces données sous forme de nombres plutôt que de chaînes nous permet de calculer le RHS donné par l'équation
a*8+i
, qui est plus courte que l'inversion de chaîne.la source
V , 37 octets
Essayez-le en ligne!
Ceci contient unprintable, voici donc un hexdump:
la source
05AB1E ,
32313028 octetsCode:
Utilise le codage CP-1252 . Essayez-le en ligne! .
la source
.c
n'est pas utilisable ici?PHP,
105896057 octetsmon premier essai de golf ici (merci à manatwork & user55641)
59
89 (mon propre essai)
105 (premier)
la source
$t.=10-$i
par$s*8+$i
. tio.run/##K8go@G9jXwAk0/…$s*8+$i
au lieu de$t.=10-$i
sauve deux autres.Pyth, 32 octets
Essayez-le en ligne!
Merci à @FryAmTheEggman pour la sauvegarde de 2 octets. Merci à @KennyLau pour la sauvegarde de 3 octets.
la source
s
ne se joint pas à l'espace - il se joint à aucun séparateur.CJam,
393836 octetsMerci à Optimizer pour la sauvegarde de 2 octets.
Testez-le ici.
Même nombre d'octets:
Cela nécessite la dernière version, disponible sur Essayez-le en ligne!
la source
Python 2,
87847875 octetsEssayez-le en ligne
Une version précédente utilise une magie de chaîne.
La conversion
range(1,10)
en chaîne donne[1, 2, 3, 4, 5, 6, 7, 8, 9]
, et c'est bien puisque chaque nombre n'est qu'un chiffre. Donc, obtenir la chaîne123456789
de ceci est simple avec`range(1,10)`[1::3]
. La plage inversée est`range(1,10)`[-2::-3]
. Ensuite, pour aller aussi loin que je le souhaite à chaque itération, je le coupe en tranches3*n
, ou à3*(9-n)
(27-3*n
) pour les chiffres inversés.la source
for n in range(1,10):print"%9s"%s[:n]+" x 8 + %s = "%n+s[::-1][:n]
pour 80 octets.s="123456789";n=1;exec'print"%9s"%s[:n],"x 8 + %s ="%n,s[::-1][:n];n+=1;'*9
sauve trois autres! Moins de 75 ans.Perl, 49 octets
Usage
la source
Ruby,
77736560 octetsEssayez-le en ligne ~
Rénovations majeures de @manatwork
Une autre refonte de @xsot
la source
puts'%9d x 8 + %d = %d'%[k=[*1..i]*'',i,k.to_i*8+i]
.(1..9).map
→1.upto(9)
%9d
être une option de formatage pour remplir des entiers comme çaa=i=0;9.times{puts"%9d x 8 + %d = %d"%[a=a*10+i+=1,i,a*8+i]}
Java 10,
151133130129126110 octetsEssayez-le en ligne.
Explication:
la source
x
au lieu du signe de multiplication.s
à"\n"
et la suppression"\n"+
de lafor
boucle×
est 2 octets au lieu de 1 commex
..s
au résultat à chaque itération?return o
place deSystem.out.print(o)
? Vous pouvez également passer à Java 10 et économiser avecvar
et lambdasC, 74 octets
la source
C #, 113 octets
si vous devez améliorer cette solution, n'hésitez pas à la partager.
la source
;n=10*n+ ++i
dans la boucle for, vous pouvez le remplacer par;n=++i+10*n
. En outre,+" x "+"8 + "+
peut être changé pour+" x 8 + "+
. enregistrer 3 octets supplémentaires.Lot, 117 octets
Oui, c'est 16% de signes sur une ligne; c'est Lot pour vous!
la source
Haskell, 92 octets
Comment ça marche:
la source
Retina , 66 octets
Le nombre d'octets suppose un codage ISO 8859-1. Le premier saut de ligne est significatif.
Essayez-le en ligne!
la source
Pyke,
3029 octetsEssayez-le ici!
la source
PowerShell v2 +,
8564585752 octetsBoucle de 8 à 0
8..0|%{...}
via l’opérateur de gamme. A chaque itération, nous produisons une concaténation de chaîne composée de (le nombre approprié d'espaces" "*$_
), plus une-join
chaîne ed de (une plage allant de1
à un numéro d'assistance pré-incrémenté++$i
, plus le bit du milieu" x 8 + $i = "
, plus la plage finale allant de9
au nombre actuel.$_
pre -incrémentée).L’un des gros trucs est de tirer parti de la "préférence de gauche" pour la conversion de type, ce qui nous permet d’ajouter des tableaux à l’intérieur du tableau.
-join
parens, ce qui signifie que nous n’utilisons qu’un seul-join
opérateur.Exemple
la source
%{
Est-ce que vos yeux vont bien?MATL ,
383635 octetsEssayez-le en ligne!
la source
J, 51 octets
Crée la chaîne
123456789
puis agit sur les préfixes et les suffixes de celle-ci pour créer la sortie.Usage
la source
JavaScript ES6 (88)
Profitant de la nouvelle
repeat
méthode, des backticks et des templates ...la source
alert
placeconsole.log
, cela peut économiser des octets!R,
107103 octetsUngolfed:
Résultat :
la source
APL (Dyalog Unicode) ,
615239 octets SBCSEssayez-le en ligne!
-9 octets en utilisant l'
10⊥
astuce pour analyser le nombre, au lieu d'une réduction. Merci à @ Adám pour -13!Explication:
la source
JavaScript (ES6), 99 octets
Où
\n
représente un caractère de nouvelle ligne littéral. La deuxième version génère une fin de ligne. Je suis arrivé avec une formule pour les nombres('1'.repeat(9-i)+0+i)/9
mais le remplissage était plus facile à faire de cette façon.la source
Brainfuck , 232 octets
Essayez-le en ligne!
Peut être joué au golf beaucoup plus loin ...
la source
Javascript (en utilisant une bibliothèque externe) (143 octets)
Lien vers lib: https://github.com/mvegh1/Enumerable/
Explication du code: créez les plages 1 à 9 et, pour chaque valeur, écrivez une ligne correspondant au prédicat complexe. La valeur entière actuelle est transmise au prédicat et crée une plage englobant des éléments 10-currentValue, afin de créer autant d'espaces. Ces espaces sont concaténés avec la partie de la ligne correspondant à la formule, puis concaténés avec la fin de la plage correspondant au nombre d'éléments de l'interface, dans l'ordre inverse.
Remarque: dans l'image, la première ligne est séparée d'un espace car la console a ajouté un guillemet puisque la valeur renvoyée est une chaîne. La valeur réelle est correctement formatée
la source
05AB1E , 24 octets
Essayez-le en ligne!
Utilise une version plus récente que le défi, qui est maintenant autorisée.
la source
©
, et changer®
poury
d'enregistrer un octet.Toile , 20 octets
Essayez-le ici!
la source
VBA (Excel), 51 octets
Utilisation de la fenêtre immédiate
la source
k (77 octets)
Pourrait probablement être raccourci un peu plus
Exemple:
la source
golflua, 56 personnages
Échantillon échantillon:
la source