Für diesen Code Golf, werden Sie einen Eingang eines Empfangs fib onacci Folge, dass eine normale Fibonacci - Folge ist aber mit einer Zahl falsch. Seht, die Sequenz ist fibrillierend ! Kapiert?:D
Sie müssen herausfinden, welche Nummer falsch ist, und den Index (0-basiert) dieser Nummer ausdrucken.
Beispielsweise:
Input : 1 1 2 9 5 8 13
Output: 3
Input : 8 13 21 34 55 80
Output: 5
Input : 2 3 5 5 13 21
Output: 3
Spezifikationen:
- Die Sequenz kann bei einer beliebigen Nummer beginnen.
- Die ersten beiden Zahlen der Eingabe sind immer korrekt.
- Der kürzeste Code (Anzahl der Zeichen) gewinnt.
8
falsch ist, weil es nicht gleich ist9+5
Antworten:
GolfScript (18 Zeichen)
Der Schlüssel, um dies kurz zu halten, ist ? (finden).
quelle
~]:^,
J
30,23quelle
Golfscript,
3128262523quelle
APL (19)
Erläuterung:
k←⎕
: Benutzereingaben speichern ink
2+/k
: summiere jedes Elementpaar ink
(dh1 1 2 3
->1+1 1+2 2+3
->2 3 5
)1↓1⌽k
: um 1k
nach rechts drehen und dann das erste Element ablegen (dh1 1 2 3
->2 3 1
)≠
: finde den Ort, an dem diese Listen nicht gleich sind1⍳⍨
: finde den Ort des ersten1
in dieser Liste (Ort der falschen Nummer)1+
: Addiere 1, um das abgelegte Element zu kompensierenquelle
K 32
quelle
DC,
3632dc
ist ein umgekehrter polnischer Taschenrechner, daher müssen Sie die Zahlen natürlich in umgekehrter Reihenfolge eingeben;)quelle
Javascript (
6968616055)(60)
(61)
(68)
(69)
quelle
JavaScript, 70
quelle
Rubin, 66
Mein erster Versuch mit einem (etwas) komplizierten Ruby-Programm:
quelle
gets.split
mit$*
(ARGV
) zu übernehmen Eingabe als Befehlszeilenargumente statt auf dem Standard - Eingabestrom. Der Raum zwischenp
und$*
kann dann auch sicher entfernt werden.Awk: 55
quelle
Python, 74
Ich hatte diese Lösung zuerst, aber Doorknob beantwortet die Frage nach dem Format der Eingangs rechts , bevor ich Zeit hatte , es zu schreiben:
Python, 66
Nimmt eine durch Zeilenwechsel getrennte Eingabe an.
quelle
Matlab / Octave, 39 Bytes
Vielen Dank an Stewie Griffin für das Speichern eines Bytes! (
-
instread von~=
)Dies ist eine anonyme Funktion, die ein Array eingibt und eine Zahl ausgibt.
Probieren Sie es online!
quelle
Python (90)
quelle
Mathematica 59
Da durch Leerzeichen getrennte Eingaben erforderlich sind,
StringSplit
müssen diese verwendet werden. Im Folgenden wird davon ausgegangen, dass die Eingabe in Form einer Zeichenfolge erfolgti
.quelle
VB.net (77)
Angenommen, die Zahlen sind bereits in einem IEnumerable (Of Integer).
quelle
Haskell, 48
quelle
JS, 52B
quelle
Gelee , 11 Bytes
Probieren Sie es online!
quelle
Kotlin , 77 Bytes
Verschönert
Prüfung
quelle
QBIC , 31 Bytes
Erläuterung
Ich bin mir nicht ganz sicher, ob das erlaubt ist. Die Sequenz wird einzeln eingegeben, und das Programm bricht bei einem Fehler ab, nicht nach der Eingabe der gesamten Sequenz.
quelle