Schreiben Sie ein Programm oder eine Funktion, die eine positive Ganzzahl enthält. Sie können davon ausgehen, dass die Eingabe gültig ist und als Zeichenfolge verwendet werden kann. Wenn die Nummer eine von ist
123
234
345
456
567
678
789
Geben Sie dann einen Wahrheitswert aus . Andernfalls geben Sie einen falschen Wert aus. Zum Beispiel die Eingänge
1
2
3
12
122
124
132
321
457
777
890
900
1011
1230
1234
müssen alle zu einer falschen Ausgabe führen. (Die Eingabe wird keine führenden Nullen haben, sodass Sie sich nicht um Dinge wie kümmern müssen 012
.)
Der kürzeste Code in Bytes gewinnt.
code-golf
number
decision-problem
integer
Calvins Hobbys
quelle
quelle
012
?012
wäre falsch, aber Sie können davon ausgehen, dass keine Eingabe erfolgt.Antworten:
Python, 24 Bytes
Eine anonyme Funktion, die 0 oder 1 ausgibt. Sie erstellt die Liste
[123, 234, 345, 456, 567, 678, 789]
und zählt, wie oft die Eingabe erscheint.quelle
Python, 24 Bytes
Nur eine Menge Zustandsverkettung.
quelle
lambda
hätte ich nicht einmal gedacht, dass es sich um Python handelt. Das ist schrecklich.Haskell, 22 Bytes
Eine anonyme Funktion. Erzeugt die gleichmäßig verteilte Liste
[123, 234, 345, 456, 567, 678, 789]
und prüft, ob die Eingabe ein Element ist.quelle
Brachylog , 9 Bytes
Probieren Sie es online! oder Überprüfen Sie alle Testfälle.
Dank an Dennis für den Algorithmus .
Auf Englisch ist "(beweisen Sie, dass) die erste Ziffer der Eingabe, die zweimal mit sich selbst verknüpft ist, also 12, immer noch die Eingabe."
quelle
Python 2, 25 Bytes
Teste es auf Ideone .
quelle
Brain-Flak 76 + 3 = 79 Bytes
Diese Antwort ist ein Golf dieser Antwort. Eigentlich weiß ich nicht genau, wie meine Antwort funktioniert, aber DJMcMayhem gibt in seiner ursprünglichen Antwort eine gute Erklärung und meine Antwort ist eine Modifikation seiner.
Es wird mit dem -a ASCII-Flag ausgeführt, das 3 Bytes hinzufügt.
Erklärung (von Art)
Ausgehend von der ursprünglichen Arbeitslösung:
Ich führe dies durch einen einfachen Golfalgorithmus, den ich geschrieben habe und erhalte:
Von hier aus sehe ich den Abschnitt, der im
<({}[()()()])>{}
Wesentlichen mit eins multipliziert wird, was es gleich macht{}[()()()]
, den gesamten Code auf Folgendes zu reduzieren:Zuletzt können Negative kombiniert werden:
quelle
Brainfuck, 32 Bytes
Probieren Sie es online!
Dank an Lynn für den Kern des Algorithmus.
quelle
Gelee , 6 Bytes
Probieren Sie es online! oder überprüfen Sie alle Testfälle .
Wie es funktioniert
quelle
ast.literal_eval
es sich handelt,012
stellt es keine ganze Zahl dar .05AB1E , 5 Bytes
Erläuterung
Probieren Sie es online aus
quelle
2Å1
stattdessenXX,
nur für die Hölle weniger Befehle verwendet (4 statt 5).Å
ist auf meiner Tastatur beschreibbar (im Gegensatz zu‚
), was ein Vorteil ist :)‚
(nicht das, was,
ich benutzt habe) hat auch keine Compose-Key-Sequenz, währendÅ
es sichoA
auf einem En-US-Keyboard befindet.MATL , 8 Bytes
Probieren Sie es online!
Dies wird
1 1
für eine wahrheitsgemäße Eingabe und ein Array mit einem0
darin enthaltenen Wert für einen falschen Wert ausgegeben, da dies in MATL falsch ist.Erläuterung:
quelle
d1=Ep4=
(ich habe nicht gründlich getestet)dTTX=
für 5 BytesT
T
ist das wörtlichetrue
undF
istfalse
. NachbarnT
undF
zusammenhalten, soTT
ist[true true]
, was für diese Zwecke gleichbedeutend ist[1 1]
. Siehe Abschnitt 4.3 der SpezifikationJava 7, 46 Bytes
Nachdem Sie im Chat einige Dinge mit Leaky Nun ausprobiert haben, scheint dies die kürzeste zu sein. Manchmal muss man es einfach so machen: /
Erläuterung:
quelle
Perl 6 ,
35 29 24 2119 BytesErläuterung:
Verwendung:
quelle
Retina , 26
Gibt 1 für wahr und 0 für falsch aus.
Probieren Sie es online aus (Erste Zeile hinzugefügt, damit mehrere Testfälle ausgeführt werden können).
quelle
Rubin,
323025 + 2 = 27 Bytes+2 Bytes für
-nl
Flags.Übernimmt die Eingabe für STDIN und druckt
true
oderfalse
.Siehe es auf repl.it: https://repl.it/DBn2/2 (Klicken Sie auf ▶ ️ und geben Sie die Eingabe in die Konsole unten ein.)
quelle
-a
tut dassplit
nichtchop
? Und was macht der&
? Ich benutze einen älteren Ruby, der einen Fehler auslöst. Auf jeden Fall funktioniert es perfekt mit 26 Bytes ohne.-l
nicht-a
.&.
ist der Operator "Sichere Navigation", der in Ruby 2.3 hinzugefügt wurde. Ohne Eingaben wie19
, die keine Teilzeichenfolgen sind"123456789"
, wird ein NoMethodError ausgelöst.Brain-Flak , 99 Bytes
Probieren Sie es online!
Dies sind 98 Byte Code
+1
für die-a
Flag.Dies wird
1
für Wahrhaftigkeit und entweder0
oder nichts (was 0 entspricht) für Falsch ausgegebenquelle
...)({}
aber variieren. Wenn Sie pushen und poppen, ohne den Wert zu verwenden, können Sie ihn zu einer Sache zusammenfassen. Wenn Sie möchten, kann ich Sie mit einer Version Ihres Codes verknüpfen, in der all diese Informationen enthalten sind.Brain-Flak , 114 Bytes
Probieren Sie es online!
Richtige Version (im Sinne der Frage): Nimmt die ganze Zahl als Eingabe, gibt 0 für Falsey und 1 für Truthy aus.
Dies ist nicht stapelrein.
Algorithmus
Lass die Eingabe sein
n
.Die Ausgabe ist wahr iff
(n-123)(n-234)(n-345)(n-456)(n-567)(n-678)(n-789)=0
.Ich berechnete diese sieben Zahlen, indem ich zuerst 12 subtrahierte und dann 111 siebenmal subtrahierte, und dann das logische Doppel-NICHT dieser sieben Zahlen berechnete und sie aufsummierte.
Für wahrheitsgemäße Ergebnisse ist die Summe 6; für falsche Ergebnisse ist die Summe 7.
Dann subtrahiere ich die Summe von 7 und gebe die Antwort aus.
quelle
R
3022 BytesNicht besonders aufregend; überprüfen , ob Eingang wird in der durch 12 + 111k gegebene Reihenfolge, wobei k jeweils 1 bis 7. Man beachte , daß ist
:
vorausgeht ,*
so dass die Multiplikation passiert , nachdem die Sequenz erzeugt wird.quelle
C # (Visual C # Interactive Compiler) ,
41 3023 ByteErste Code-Golf-Einreichung, sei sanft :)
Probieren Sie es online!
quelle
return
Schlüsselwort: 30 BytesBrainfuck, 43 Bytes
Bah, ich bin nicht gut darin. Ausgaben,
\x01
wenn die Ausgabe eine der Zeichenfolgen123
ist ,,234
…789
,; Ausgänge\x00
sonst.(Ich habe Java 7 geschlagen ...)
Probieren Sie es online!
quelle
[>>]<
? Könnte das nicht einfach sein>
?JavaScript ES6, 26 Byte
n=>1>(n-12)%111&n>99&n<790
Dies macht sich die Tatsache zunutze, dass ich bitweise Logikoperatoren für im Wesentlichen boolesche Operatoren (die bitbasiert sind!) Verwende.
Vielen Dank an Titus für das Speichern von 2.
quelle
(n-12)
undn>99
Excel -
62573531 BytesBasiert auf der Antwort von Anastasiya-Romanova, gibt aber die Excel-
TRUE/FALSE
Werte zurück.Weiter können wir kommen
da beide
RIGHT
undLEFT
standardmäßig ein einzelnes Zeichen zurück.Und inspiriert von einigen der Python-Lösungen:
Vielen Dank an Neil für 4 weitere Bytes ...
quelle
N<900
Ihnen kein Byte, in diesem Fall können Sie auchN>99
statt verwendenLEN(N)=3
.=REPT(LEFT(N),3)+12=N
woN
ist der Name der Referenzzelle.Brachylog (2), 7 Bytes
Probieren Sie es online!
Erläuterung
Als vollständiges Programm erhalten wir eine echte Rendite, wenn alle Behauptungen zutreffen, und eine falsche Rendite, wenn eine fehlschlägt.
quelle
CJam,
139 BytesProbieren Sie es online!
Erläuterung
quelle
2345
Excel - 104 Bytes
Erläuterung:
Die Syntax für die IF-Formel in Excel lautet:
Wenn die Länge der Eingabe
N
, bei der es sich um einen Namen der Referenzzelle handelt, weniger als 3 beträgt, wird Falsy zurückgegeben . Anderenfalls, wenn die Länge der EingabeN
3 ist und sowohl die Differenz der zweiten als auch der ersten Ziffer und die Differenz der dritten und der zweiten Ziffer gleich 1 sind, wird Truthy zurückgegeben .quelle
=REPT(LEFT(N),3)+12=N
woN
ist der Name der Referenzzelle.Dyalog APL , 10 Bytes
Übernimmt ein String-Argument.
1 1≡
Ist {1, 1} identisch mit¯2-/
die umgekehrte paarweise Differenz von⍎¨
jedes Zeichen als Zahl genommen?TryAPL online! (
⍎
Wurdee
aus Sicherheitsgründen mit emuliert .)quelle
Perl, 18 Bytes
Beinhaltet +1 für
-p
Führen Sie mit der Eingabe auf STDIN
123.pl
:quelle
PHP, 31 Bytes
Überprüfen Sie, ob die erste Ziffer von (Zahl minus 12) ein Vielfaches von 111 ist
quelle
PowerShell v3 +, 24 Byte
Verwendet den gleichen Trick "Vielfaches von 111 plus 12" wie einige andere Antworten, geht aber in die andere Richtung. Nimmt Eingaben auf
$args[0]
, subtrahiert12
, dividiert durch111
und prüft, ob dies-in
der Bereich ist1..7
. Gibt einen booleschen True / False-Wert aus. Benötigt v3 + für den-in
Operator.Testfälle
quelle
ARM-Maschinencode, 18 Byte
Hex Dump (Little Endian):
Dies ist eine Funktion, die ein Länge-Zeiger-Paar für den String benötigt. Die Ausgabe ist bash-artig, sie gibt 0 für wahr und einen Wert ungleich null für falsch aus. In C würde die Funktion als int oneTwoThree deklariert (size_t length, char * string). Die Befehlskodierung ist thumb-2, die 2- und 4-Byte-Befehle enthält. Getestet auf einem Raspberry Pi 3.
Ungolfed Versammlung:
Testskript (auch Assembly):
quelle
JavaScript (ES6), 34 Byte
Und noch eine Option in JS. Nimmt Eingaben als String und gibt sie
0
fürfalse
und1
für austrue
.Sehen Sie meine anderen Lösungen hier und hier
Versuch es
quelle