Ecrivez un programme ou une fonction qui prend un entier positif. Vous pouvez supposer que la saisie est valide et la prendre comme une chaîne. Si le nombre est l'un des
123
234
345
456
567
678
789
puis sortie une valeur de vérité . Sinon, indiquez une valeur de fausseté . Par exemple, les entrées
1
2
3
12
122
124
132
321
457
777
890
900
1011
1230
1234
doit aboutir à une sortie de fausseté. (L'entrée n'aura pas de zéros non significatifs, vous n'avez donc pas à vous soucier de choses comme 012
.)
Le code le plus court en octets gagne.
code-golf
number
decision-problem
integer
Les passe-temps de Calvin
la source
la source
012
?012
serait faux, mais vous pouvez supposer que ce n'est pas entrée.Réponses:
Python, 24 octets
Fonction anonyme dont le résultat est 0 ou 1. Elle crée la liste
[123, 234, 345, 456, 567, 678, 789]
et compte le nombre de fois où l’entrée apparaît.la source
Python, 24 octets
Juste beaucoup de condition chaining.
la source
lambda
je n'aurais même pas deviné que c'était Python. C'est horrible.Haskell, 22 octets
Une fonction anonyme. Génère la liste à espacement régulier
[123, 234, 345, 456, 567, 678, 789]
et vérifie si l'entrée est un élément.la source
Brachylog , 9 octets
Essayez-le en ligne! ou Vérifiez tous les cas de test.
Crédits à Dennis pour l'algorithme .
En anglais, "(prouver que) le premier chiffre de l'entrée, concaténé deux fois, ajouter 12, est toujours l'entrée."
la source
Python 2, 25 octets
Testez-le sur Ideone .
la source
Brain-Flak 76 + 3 = 79 octets
Cette réponse est un golf de cette réponse. Je ne sais pas vraiment comment ma réponse fonctionne, mais DJMcMayhem donne une bonne explication dans sa réponse initiale et ma réponse est une modification de la sienne.
Il est exécuté avec le drapeau -a ascii en ajoutant 3 octets.
Explication (de toutes sortes)
À partir de la solution de travail d'origine:
Je lance ceci à travers un algorithme de golf simple que j'ai écrit et obtient:
À partir de là, je vois la section que
<({}[()()()])>{}
cela multiplie essentiellement par un, ce qui revient à{}[()()()]
réduire le code entier à:Enfin, les négatifs peuvent être combinés:
la source
Brainfuck, 32 octets
Essayez-le en ligne!
Crédits à Lynn pour le noyau de l'algorithme.
la source
Gelée , 6 octets
Essayez-le en ligne! ou vérifier tous les cas de test .
Comment ça marche
la source
ast.literal_eval
concerne,012
ne représente pas un entier .05AB1E , 5 octets
Explication
Essayez-le en ligne
la source
2Å1
au lieu deXX,
, juste pour le diable de moins de commandes (4 au lieu de 5).Å
est enregistrable sur mon clavier (par opposition à‚
) ce qui est un avantage :)‚
(pas celui que,
j'ai utilisé) n'a pas non plus de séquence de composition, alors qu'ilÅ
estoA
sur un clavier en-US.MATL , 8 octets
Essayez-le en ligne!
Cela affichera
1 1
pour une entrée de vérité et un tableau contenant une0
valeur de fausseté, puisque c'est faux en MATL.Explication:
la source
d1=Ep4=
(je n'ai pas fait de tests approfondis)dTTX=
pour 5 octetsT
T
est le littéraltrue
, etF
estfalse
. VoisinT
etF
collent ensemble, telTT
est le cas[true true]
, ce qui à ces fins est équivalent à[1 1]
. Voir la section 4.3 de la spécificationJava 7, 46 octets
Après avoir essayé plusieurs choses avec Leaky Nun dans le chat, cela semble être le plus court. Parfois, il suffit de faire les choses de manière simple: /
Explication:
la source
Perl 6 ,
35 29 24 2119 octetsExplication:
Usage:
la source
Rétine , 26 ans
Sorties 1 pour la vérité et 0 pour falsey.
Essayez-le en ligne (première ligne ajoutée pour permettre l'exécution de plusieurs cas de test).
la source
Ruby,
323025 + 2 = 27 octets+2 octets pour les
-nl
drapeaux.Prend une entrée sur STDIN et imprime
true
oufalse
.Voir le sur repl.it: https://repl.it/DBn2/2 (Cliquez sur ▶ puis tapez une entrée dans la console ci-dessous.)
la source
-a
faire unsplit
, nonchop
? Aussi, que fait le&
? J'utilise un Ruby plus ancien qui génère une erreur. Quoi qu'il en soit, cela fonctionne parfaitement à 26 octets sans cela.-l
, pas-a
.&.
est l'opérateur de "navigation sécurisée", ajouté dans Ruby 2.3. Sans cela, les entrées comme19
, qui ne sont pas des sous-chaînes si"123456789"
, généreront une erreur NoMethodError.Flaque de cerveau , 99 octets
Essayez-le en ligne!
C'est 98 octets de code
+1
pour le-a
drapeau.Ceci
1
affiche pour la vérité, et0
rien ou rien (ce qui équivaut à 0) pour la faussetéla source
...)({}
mais varient. Si vous poussez et sautez sans utiliser la valeur, vous pouvez la condenser en une seule chose. Je peux vous lier à une version de votre code avec toutes ces données gravées si vous le souhaitez.Brain-Flak , 114 octets
Essayez-le en ligne!
Version correcte (dans l'esprit de la question): prend le nombre entier en tant qu'entrée, la sortie 0 pour falsey et 1 pour la vérité.
Ce n'est pas pile propre.
Algorithme
Laissez l'entrée être
n
.La sortie est vraie si et si
(n-123)(n-234)(n-345)(n-456)(n-567)(n-678)(n-789)=0
.J'ai calculé ces sept nombres en soustrayant d'abord 12 puis en soustrayant 111 7 fois, puis j'ai calculé le double-NON logique de ces sept nombres et les ai additionnés.
Pour des résultats véridiques, la somme est 6; pour les résultats de falsey, la somme est de 7.
Ensuite, je soustrais la somme de 7 et édite la réponse.
la source
R,
3022 octetsPas particulièrement excitant. vérifier si l' entrée se trouve dans la séquence donnée par 12 + 111k, où k est chacun 1 à 7. On notera que
:
précède de*
sorte que la multiplication se produit après que la séquence est générée.la source
C # (compilateur interactif Visual C #) ,
41 3023 octetsPremière soumission de code-golf, soyez gentil :)
Essayez-le en ligne!
la source
return
mot clé: 30 octetsBrainfuck, 43 octets
Bah, je ne suis pas bon à ça. Les sorties
\x01
si la sortie est l' une des chaînes123
,234
...,789
; les sorties\x00
autrement.(J'ai battu Java 7, cependant…)
Essayez-le en ligne!
la source
[>>]<
? Cela ne pourrait-il pas être juste>
?JavaScript ES6, 26 octets
n=>1>(n-12)%111&n>99&n<790
Cela profite du fait que j'utilise des opérateurs logiques bit par bit sur ce qui est essentiellement booléen (qui est basé sur des bits!)
Merci à Titus d’avoir économisé 2.
la source
(n-12)
etn>99
Excel -
62573531 octetsBasé sur la réponse d'Anastasiya-Romanova, mais en renvoyant les
TRUE/FALSE
valeurs d'Excel .De plus, nous pouvons arriver à
depuis
RIGHT
etLEFT
retourne un seul caractère par défaut.Et, inspiré par certaines des solutions Python:
Merci à Neil pour 4 octets de plus ...
la source
N<900
vous enregistre pas d' octet, auquel cas vous pouvez également utiliser à laN>99
place deLEN(N)=3
.=REPT(LEFT(N),3)+12=N
oùN
est le nom de la cellule de référence.Brachylog (2), 7 octets
Essayez-le en ligne!
Explication
En tant que programme complet, nous obtenons un retour de vérité si toutes les affirmations sont vérifiées, un retour de Falsey si d’autres échouent.
la source
CJam,
13 à9 octetsEssayez-le en ligne!
Explication
la source
2345
Excel - 104 octets
Explication:
La syntaxe de la formule IF dans Excel est la suivante:
Si la longueur de l'entrée
N
, où il s'agit d'un nom de la cellule de référence, est inférieure à 3, elle renverra Falsy . Sinon, si la longueur de l'entréeN
est 3 et que la différence du deuxième chiffre et du premier chiffre et la différence du troisième chiffre et du deuxième chiffre sont égales à 1, le résultat est renvoyé. Truthy .la source
=REPT(LEFT(N),3)+12=N
oùN
est le nom de la cellule de référence.Dyalog APL , 10 octets
Prend l'argument de chaîne.
1 1≡
Est {1, 1} identique à¯2-/
la différence par paire inversée de⍎¨
chaque caractère pris comme un nombre?TryAPL en ligne! (
⍎
a été imité avece
pour des raisons de sécurité.)la source
Perl, 18 octets
Comprend +1 pour
-p
Exécuter avec l'entrée sur STDIN
123.pl
:la source
PHP, 31 octets
Vérifiez si le premier chiffre de (nombre moins 12) est multiple de 111
la source
PowerShell v3 +, 24 octets
Utilise le même truc "multiple de 111 plus 12" que certaines autres réponses, mais va dans l'autre sens. Prend les entrées
$args[0]
, soustrait12
, divise par111
et vérifie si c'est-in
la plage1..7
. Affiche une valeur booléenne true / false. Nécessite v3 + pour le-in
opérateur.Cas de test
la source
Code machine ARM, 18 octets
Hex dump (petit endien):
C'est une fonction qui prend en longueur une paire de pointeurs pour la chaîne. La sortie est de type bash, elle affiche 0 pour vrai et une valeur non nulle pour faux. En C, la fonction serait déclarée int oneTwoThree (size_t length, char * string). Le codage des instructions est le pouce 2, qui comporte des instructions de 2 et 4 octets. Testé sur un Raspberry Pi 3.
Assemblée non-golfée:
Script de test (également assemblage):
la source
JavaScript (ES6), 34 octets
Et encore une option dans JS. Prend les entrées sous forme de chaîne et les sorties
0
pourfalse
et1
pourtrue
.Voir mes autres solutions ici et ici
L'essayer
la source