Affiche les nombres de un à cent (dans l'ordre croissant), mais le numéro 2 ne doit apparaître nulle part dans la séquence. Ainsi, par exemple, les nombres deux ( 2
) ou vingt-trois ( 23
) ne doivent pas être dans la séquence.
Voici un exemple de sortie, avec des sauts de ligne séparant les nombres:
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100
code-golf
sequence
kolmogorov-complexity
Monolica
la source
la source
[code-golf]
. Voici une liste de toutes les balises de critères gagnantes disponibles pour référence future.Réponses:
05AB1E , 6 octets
Essayez-le en ligne!
Explication
la source
Taxi ,
239923912370178317731706 octets-8 octets pour se rendre compte qu'au lieu de laisser un certain passager à Sunny Side Park pour toujours, il vaut mieux le jeter hors du pont Riverview. Ah, quelle belle ville c'est.
-21 octets pour avoir supprimé un commentaire que j'ai bêtement laissé.
-587 octets en changeant simplement toute la façon dont j'ai procédé (apparemment, un moyen plus court est l'arithmétique; la division des nombres entiers [17, 27, 37, 47, ...] par 9 donne la séquence, mais vous devez sauter le 20 vous-même.)
-17 octets pour la réalisation que toute chaîne entre guillemets sans espace n'a pas besoin de guillemets après tout (merci Jo King!).
-67 octets pour la réalisation que les sauts de ligne sont facultatifs.
Essayez-le en ligne!
Celui-ci ne me remportera pas de compétitions de golf de code de sitôt, mais j'ai décidé d'essayer l'esolang Taxi.
Le taxi est un esolang dans lequel toute la programmation se fait en ramassant et en déposant des passagers à divers arrêts dans la ville fictive de Townsburg. Bien sûr, votre taxi sera parfois à court d'essence, vous devez donc également visiter les stations-service de temps en temps et payer en utilisant les crédits que vous recevez comme tarif (dans ce cas, je n'ai besoin que de m'arrêter pour le gaz - chez Go More - une fois par itération de boucle!).
J'ai utilisé quelques astuces qui réduisent un peu la taille du fichier, telles que la reformulation des directions comme
east 1st left, 2nd right
ase 1 l 2 r
, la suppression du motthe
là où il est facultatif et l'utilisation de l'itinéraire le moins compliqué vers toutes mes destinations (pas nécessairement le chemin le plus court).Je déteste cette solution plus courte que celle que j'ai proposée à l'origine. Cette solution est ici un moyen plus général d'accomplir la tâche, qui pourrait commencer et se terminer où vous le souhaitez. Le voici, dans son intégralité.
2245 octets (beaucoup plus général)
Essayez-le en ligne!
Et si la méga-triche est autorisée, celle-ci est beaucoup plus courte que les deux dernières.
456 octets (triche totale)
Essayez-le en ligne!
la source
Python 2 , 39 octets
Essayez-le en ligne!
Utilise des opérations arithmétiques uniquement pour générer des nombres sans 2.
La valeur
k
suit la progression arithmétique17, 27, 37, 47, ...
qui, lorsqu'elle est divisée par 9 par le plancher, donne1,3,4,5,6,7,8,9,10,11,13,14,...
les nombres qui ne se terminent pas par 2. Pour sauter de 20 à 29, les sorties sont augmentées de 10 au-delà d'un certain seuil.la source
JavaScript (ES6), 43 octets
Renvoie la séquence sous forme de chaîne séparée par des virgules.
Essayez-le en ligne!
Pourquoi le faire de cette façon?
Nous pourrions parcourir de1 à 100 et tester chaque nombre avec
/2/.test(n)
, ce qui est une déclaration assez concise. Mais dans ce scénario, nous aurions à gérer des entrées vides avec quelque chose comme(/2/.test(n)?'':...)
, ce qui ajoute quelques octets de plus.Par exemple, cela fonctionnerait pour 45 octets :
Ou cela fonctionnerait pour 44 octets , si une virgule de début est acceptable:
Dans l'ensemble (et jusqu'à preuve du contraire), il s'avère plus court de sauter immédiatement toutes les valeurs den qui contiennent un 2 .
Commenté
la source
R , 19 octets
Essayez-le en ligne!
la source
grep(2,1:100,inv=T)
pour 19.v=F
aussi parce qu'évidemment, je me suis dit, je veux les valeurs et non les indices ... duh!^[^2]*$
ce qui, euh, n'est pas plus court.Python 2 , 44 octets
Essayez-le en ligne!
la source
Perl 6 , 22 octets
Essayez-le en ligne!
Il y a probablement une meilleure façon de faire le bloc de code, mais je n'ai pas pu trouver d'adverbe regex pour inverser la correspondance
la source
PowerShell ,
2216 octetsEssayez-le en ligne!
-6 octets grâce à mazzy
Génère la plage
1
vers100
, puis extrait les objets où ils font-notmatch
le nombre2
. Exécuter le-notmatch
contre un tableau comme celui-ci agit comme un filtre sur le tableau. Chaque élément est laissé sur le pipeline et la sortie est implicite.la source
1..100-notmatch2
Haskell ,
483331 octetsMerci @JonathanFrech pour quinze octets enregistrés et @xnor pour deux autres! J'ai raté un gros golf et je ne savais pas que cela
main=print$
pouvait être omis.Essayez-le en ligne!
Facilement étendu en changeant le
100
. Stringifie tous les nombres et ne conserve que ceux sans'2'
.la source
main=print$
n'est pas nécessaire. Avez-vous testé votre code? Je ne pense pas que ceelem'2'
soit une syntaxe valide. Pourquoimap
? Fait simplementfilter(not.elem '2'.show)[1..100]
le travail.notElem
pournot.elem
, mais est encore plus courtall(/='2')
.Utilitaires Bash + GNU, 16
Essayez-le en ligne!
la source
Japt , 7 octets
Essayez-le en ligne!
la source
Java 10, 67 octets
Essayez-le en ligne.
Explication:
la source
Rétine ,
1917 octetsEssayez-le en ligne! Edit: sauvé 2 octets grâce à @ovs, bien que la dernière ligne contienne désormais une nouvelle ligne. Explication:
Insérez 100 caractères.
Remplacez chaque caractère par le nombre de caractères jusqu'à et y compris ce caractère, plus une nouvelle ligne.
Supprimez toutes les entrées contenant un
2
.la source
.
$.>`¶
pour la deuxième étape?L$
éviter une nouvelle ligne principale, donc je ne m'étais pas rendu compte que je pouvais revenir en arrière, merci.Stax , 6 octets
Exécuter et déboguer
Déballé, non golfé et commenté, il ressemble à ceci.
Exécutez celui-ci
la source
Wolfram Language (Mathematica) , 42 octets
Essayez-le en ligne!
La séquence arithmétique 1, 19/9, 29/9, 39/9, ... croît juste au bon rythme en prenant le plafond saute tous les nombres se terminant par 2. Ensuite, nous nous débarrassons de 20 à 29 en
Drop
cinglant les valeurs aux indices 18 à 26.la source
Print
c'est nécessaire, mais qui s'en soucie vraiment, de toute façon.\[LeftCeiling]
et\[RightCeiling]
comptez vraiment comme un seul octet :)Ceiling
commande réelle .C (GCC) ,
6255 octets• 7 octets grâce à Jonathan Frech
f(n){for(n=0;++n-101;n/10-2&&n%10-2&&printf("%d,",n));}
Boucles de 1 à 100 et imprime le nombre uniquement si 2 n'est pas à la place des un ou des dizaines.
Essayez-le en ligne!
la source
Powershell, 19 octets
Ce script affiche une valeur nulle à la place «numéros avec 2 à l'intérieur» et résout complètement la tâche «le numéro 2 ne devrait apparaître nulle part dans la séquence».
Sortie:
Powerhsell (la sortie ne contient pas de valeurs nulles), 24 octets
la source
sh + coreutils, 16 caractères
Génère une séquence de 1 à 100 (inclus) et supprime toutes les lignes contenant «2».
la source
Z80Golf ,
4948 octetsEssayez-le en ligne!
Assemblée:
Un octet enregistré avec le
repeat_loop
sautla source
Python 3 ,
53 51 50 4946 octetsEssayez-le en ligne!
Pas le langage le plus fort pour cette tâche, mais je suis nouveau dans le golf.
Merci aux commentateurs pour leurs conseils!
la source
if
.[print(n)for n in range(1,101)if"2"not in str(n)]
travaux.n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
'2'in str(n)or print(n)
est plus court qu'un gardien de compréhension.Tcl , 44 octets
Essayez-le en ligne!
Tcl , 47 octets
Essayez-le en ligne!
Tcl , 50 octets
Essayez-le en ligne!
la source
time {if [string f 2 [incr i]]==-1 {puts $i}} 100
- Outgolf échoué!regexp
:![regexp 2 [incr i]]
pour -3 octetsKotlin , 32 octets
Essayez-le en ligne!
la source
Bash, 31 bytes
Try it online!
Thanks to Digital Trauma for short loop.
la source
echo $i
instead of the printf? Or even betterprintf %d\\n {1..100}|grep -v 2
?echo {1..100}|tr ' ' \\n|grep -v 2
sed /2/d
instead ofgrep -v 2
.ORK, 1092 bytes
Try it online!
Objects R Kool. Output is a space-delimited list of numbers.
This translates (approximately) to the following pseudocode:
As you can see, everything is done using objects, including basic math and IO functions (through the built-in mathematician and scribe classes). Only whole functions can loop, which explains the need for an object with two functions to do the work.
la source
MathGolf,
76 bytesTry it online!
Explanation
la source
C (clang), 56 bytes
Try it online!
la source
PHP 7.1, 40 bytes
prints numbers separated by underscores. Run with
-nr
or try it online.la source
preg_filter()
based one is interesting. (I never used that function. 🤫) That one would be shorter withpreg_grep()
:<?=join(_,preg_grep("/2/",range(1,100),1));
.Red, 44 bytes
Try it online!
Uses
unless
instead ofif not
, because why not? :)la source
brainfuck, 176 bytes
Try it online!
Shorter is definitely possible. This generates the numbers
1,3,4,5,6,7,8,9
and0,1,3,4,5,6,7,8,9
. First it outputs each number in the first list, then it outputs every combination of the first and second list, then finally prints just100
.Explanation:
la source
SimpleTemplate, 51 bytes
This was a fun challenge! And it is a challenge where my language can do well.
Cycles through all values from 1 to 100, outputting the ones that don't have 2, separated by a newline.
You can try it on http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99
Ungolfed:
The
{@/}
is used to close the{@for ...}
and{@if ...}
, but is optional.When compiling to PHP, it adds the needed closing.
If you're curious, the golfed code results in this PHP code:
Where
$FN['array_flat']
is defined outside of this code.la source