Wenn Sie eine Ziffer zwischen 0 und 9 (einschließlich) eingeben, sollte Ihre Funktion / Subroutine alle Zahlen zwischen -100 und 100 (einschließlich) ausgeben, die die angegebene Ziffer enthalten.
Beispielsweise:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
Regeln:
- Sie können keine Zeichenfolgen (wie auch immer sie in der von Ihnen gewählten Sprache dargestellt werden) oder Zeichenfelder verwenden. (Außer die Antwort auf die Konsole zu drucken.)
- Sie können keine Arrays verwenden.
Wertung:
Score = Länge des Unterprogramms / der Funktion (Leerzeichen werden nicht gezählt)
Die Antwort mit der niedrigsten Punktzahl gewinnt.
Leerzeichen werden NICHT gezählt. Bitte formatieren Sie Ihren Code richtig!
Einige Antworten verwenden reguläre Ausdrücke, die möglicherweise gegen die von einigen Mitgliedern festgelegte No-Strings-Regel verstoßen. Diese Antworten werden nicht akzeptiert.
Bitte testen Sie Ihren Code 0
vor dem Posten mit.
Antworten:
Leerzeichen, 834 Zeichen (0, wenn Sie Leerzeichen subtrahieren)
Benutzt diesen Interpreter um es zu testen.
Dafür habe ich 4 Stunden harte Arbeit und schreckliches Debuggen benötigt. Aber es ist geschafft!
BEARBEITEN : Auswählbarer Text mit HTML-Tricks. Wenn Sie es von hier an eine andere Stelle kopieren und einfügen, überprüfen Sie bitte, ob Sie
[space][tab][linefeed][linefeed][linefeed]
mit 100 oder 101 Zeilen genau am Ende angekommen sind (je nachdem, ob Ihr Editor eine neue Zeile zählt oder nicht, wenn die letzte mit einem Zeilenvorschub endet).Für den Fall, dass Sie es nicht auf diese Weise verwenden können, wenn Sie Leerzeichen als
S
, Zeilenvorschub alsL
und Tabulator als betrachtenT
und Zeilen nach demL
's brechen , ist dies hier:quelle
Bash + Utensilien - 20
Oder 21 Bytes, wenn in einem Skript
So führen Sie das Skript aus:
quelle
grep
ist nichtbash
odersh
. Es ist ein weiteres Dienstprogramm!JavaScript 133 - 1 = 132
An dieser Version konnte doch jetzt nichts mehr falsch sein ...?
quelle
for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i)
.alert(RegExp(9).test(99))
was nur auf Zahlen basiert, kehrt auchtrue
aufgrund des locker basierenden Schreibsystems von JavaScript zurück. Die Funktionen arbeiten mit den Zahlen, als wären sie Zeichenfolgen, sind aber immer noch Zahlen ... Wenn Sie den Code so ändern, dass er gelesenr=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))
und ausgeführt wird, wird die endgültige Art der Antwort angezeigtx
undi
als Zahlen ... Also, ich verwende keine Zeichenfolgen ...GolfScript [24 Bytes]
Beschreibung:
DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D
quelle
Ruby: 92 Zeichen
Lesbare Version:
Probelauf:
Testlauf:
quelle
0
Test fehl .K - 45 Zeichen
Keine Auszeichnungen, aber K Golf ist unterrepräsentiert. K wird mit dem richtigen Abstand nicht hübscher, also lasse ich das einfach so, wie es ist, weil K sehr wählerisch wird, welches Leerzeichen wichtig ist und welches nicht.
Erklärt:
a:100-!201
- Machen Sie eine Liste von 0 bis einschließlich 200 und subtrahieren Sie sie dann von 100. Jetzt haben wir die Zahlen von -100 bis einschließlich 100, aber rückwärts von den Angaben der Frage. Wir können das später immer wieder beheben, daher weisen wir dies vorerst nur zua
._ _abs
- Berechnen Sie den absoluten Wert dieser Zahlen, denn aus welchem Grund auch immer K der Meinung ist,_abs
dass dies Gleitkommaergebnisse liefern sollte. Zum Glück wandelt der Bodenbelag sie wieder in ganze Zahlen um.10_vs'
- Erweitern Sie jede'
Ganzzahl ( ) als Zahl zur Basis 10 (_vs
steht für "Vektor aus Skalar"). Beachten Sie, dass wir den Each-Operator'
für die obigen Funktionen nicht verwenden mussten, da sie auf Atomen arbeiten.@[...;100;0,]
- Ändern Sie das Element in unserer Liste mit dem Index 100 (eine leere Liste, die das Ergebnis der Erweiterung von 0 auf Basis 10 ist) um die Funktion0,
, die der Vorderseite eine Null voranstellt. Ohne diese Korrektur schlägt diese Funktion am Eingang 0 fehl.&x in'
- Geben Sie nun die Indizes (&
) zurück, bei denenx
in (_in
) jeder ('
) der oben so sorgfältig konstruierten Erweiterungen eine Ziffer steht .|a@
- Verwenden Sie schließlich diese Indizesa
, um die Liste zu indizieren und in die richtige Reihenfolge umzukehren.Die Verwendung ist offensichtlich, obwohl Sie viel Glück haben, einen K-Interpreter in die Hände zu bekommen. (Auf Github gibt es eine Open-Source-Implementierung , die Sie kompilieren können.)
quelle
Bash
5549 Zeichen:(ohne Leerzeichen
&&
)Ausführen mit den Worten:
würde produzieren:
quelle
;
s in Zeilenumbrüche konvertieren und 2 Punkte speichern.PHP 67 Bytes:
Ja, es gibt einen Strpos-Anruf, aber ich verwende nur Nummern!
Hier ist eine 'ungolfed' Version:
Damit dies funktioniert, können Sie es hier testen: http://writecodeonline.com/php/
Denken Sie daran,
$_GET[n]='<number>';
am Anfang des Codes einzufügen.Oder Sie können auf einem Lampen- oder XAMPP-Server eine Seite erstellen und dann im Browser mit dem Parameter darauf zugreifen
?n=<number>
nach dem Dateinamen .quelle
Mathematica 28
Entschuldigung, ich konnte einfach nicht widerstehen.
:)
Die Anweisungen lauten: "Wenn Sie eine Ziffer zwischen 0 und 9 (einschließlich) eingeben, sollte Ihre Funktion / Subroutine alle Zahlen zwischen -100 und 100 (einschließlich) ausgeben, die die angegebene Ziffer enthalten."
Im Folgenden werden alle diese Nummern der Reihe nach gedruckt.
Als besonderen Bonus werden die Nummern im selben Bereich gedruckt, die die angegebene Ziffer nicht enthalten. :)
quelle
Mein erster Versuch hier, also mache ich vielleicht ein paar Dinge falsch, bitte entschuldige das;)
Also war ich mir nicht sicher, ob ich die ganze Klasse oder nur die Logik hinzufügen musste.
Java - 199 Zeichen
Hier eine besser lesbare Form:
Ich denke, die Grundidee war nicht so schlecht, brauchte aber zu viele Ausnahmen, um endlich für alle Fälle zu klären ...: /
quelle
0
:(intx
... sollte es nicht seinint x
:?C -
104107114 Zeichen - 0 =104107114Ungolfed:
quelle
0
enthält0
.R 87
93Hier ist eine Verbesserung:
(Möglicherweise) besser lesbar, mit Anmerkungen:
quelle
0
.0
. Hast du es mit dieser neuesten Version versucht? Ich benutze R 3.0.1.Prolog: 75
quelle
test.pl
Datei gespeichert, gestartetswipl
, eingegebenconsult('test')
und dann eingegebenf(9)
. Aber es kehrte nur zurückfalse
.C Antwort in 98 Zeichen
Dies ist eines der sexiesten Dinge, die ich jemals codiert habe
Die ältere Version mit 104 Zeichen ohne Leerzeichen:
"Funktioniert für mich" mit GCC und CLANG.
quelle
GNU coreutils (44)
Mit where
tr
werden Zeilenumbrüche in Leerzeichen konvertiert, und esecho
wird ein abschließender Zeilenumbruch angegeben.quelle
Javascript 116
quelle
J - 27 Zeichen
Alle Leerzeichen sind sicher entfernbar, dh 27 Zeichen. Negative Zahlen in der Ausgabe haben
_
ein negatives Vorzeichen: Dies ist genau die Art, wie J seine negativen Zahlen schreibt.Erklärt:
V & (i: 100)
- Bind (&
) die Zahlenmenge von -100 bis einschließlich 100 (i:100
) als rechtes Argument des Hauptverbs (V
). Das einzelne Argument des gesamten Verbs wird in die linke Seite geleitet.(U"0 # ])
- Verwenden Sie das Ergebnis des VerbsU
über jeder Zahl aus dem rechten Argument ("0
), um (#
) Elemente aus dem rechten Argument (]
) auszuwählen .(e. 10 #.^:_1 |)
- Geben Sie die zu prüfende Ziffer als linkes Argument und die zu prüfende Zahl als rechtes Argument an, erweitern Sie in Basis 10 (10 #.^:_1
) den absoluten Wert der Zahl (|
) und prüfen Sie, ob die Ziffer ein Element dieser Erweiterung ist (e.
).Verwendung:
quelle
-
Negate / Minus zu unterscheiden. Mit K können Sie das negative Vorzeichen "natürlich" in Zahlen verwenden, und nebenbei kam K zu einem arkanen syntaktischen Clusterfick. Wenn es wirklich Sie irking, Arbeit in Ihrer Wahl;8!:1
,'4.0'8!:2
oder'-'I.@:=&'_'}":
, kostet 7, 11 und 16 Zeichen bzw. das daraus resultierende Programm , um eine Funktion statt einem Ausdruck, nach meiner Schätzung.Groovy, 127
Keine Zeichenfolgen (außer zum Ausgeben der Leerzeichen zwischen den Zahlen), keine Zeichen-Arrays oder anderen Arrays, keine regulären Ausdrücke. Getestet mit 0. Ausgabe:
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
quelle
Javascript - 108
Ich bin mir nicht sicher, ob die vorhandene JavaScript-Antwort berücksichtigt wird, da sie Regex verwendet. Daher habe ich eine Antwort ohne Regex erstellt:
Kann auch auf 101 gekürzt werden, wenn die Variable x direkt gesetzt wird, wie:
Grundsätzlich wird geprüft, ob die absoluten Werte von div- oder mod-Operationen der Ziffer entsprechen (was auch für 100 funktioniert).
quelle
x=1
dies nicht möglich ist, drucken Sie-100
oder100
.1
funktioniert gut, aber jetzt0
druckt1
,2
,3
... Sorry ein Querulant , hier zu sein.prompt()
string zurückgegeben wird, also habe ich * 1 hinzugefügt und es sollte hoffentlich jetzt ok sein. Vielen Dank für Ihre VorschlägeparseInt(j/10)
ersetzt werden kann,(0|j/10)
was sowohl kürzer ist als auch die impliziten Zeichenfolgen vermeidet. Die (unvermeidliche) Umwandlung von Zeichenfolge in Zahlprompt()*1
kann nicht wie folgt gekürzt werden+prompt()
. (Oder noch kürzer, ändern Sie die Funktion zu startenfor(x=+prompt(i=-100);...
.GW Basic: 107 Zeichen ohne Leerzeichen
Die Verwendung einzelner Ziffern für die Zeilennummern hilft und das Entfernen der Leerzeichen bedeutet, dass es nicht wirklich erforderlich ist, mehrere Anweisungen in einer Zeile mehr als einmal zu haben, um die Zeilennummern auf 10 zu halten.
quelle
GROOVY, 71
Ergebnisse in
quelle
Javascript 96
Verwenden Sie bitweise oder:
quelle
Haskell,
8675 (78 mit notwendigen Leerzeichen)Ungolfed:
quelle
a 0=[-100....
unda d=[b|b<-....
Sie können das loswerdenif then else
und ein paar Bytes sparen.Python - 172 Zeichen
So testen Sie in Python:
quelle
VBA 121
(ohne Leerzeichen oder
Sub
Definition):quelle
0
?IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
Perl, 117, ohne bedeutungslose Leerzeichen
Ich glaube, Sie haben nach etwas Ähnlichem gesucht. Liest von stdin, gibt eine Zeile pro Übereinstimmung aus. Keine regulären Ausdrücke, Arrays (oder Mengen oder Hashes oder irgendetwas anderes, das ein Array unter dem Deckmantel ist) oder Zeichenfolgen, implizit oder anderweitig, außer den Zeichenfolgen, die an print übergeben werden:
z.B:
quelle
F #
8792 - 75 Zeichen hinzugefügt, da 0 nicht korrekt behandelt wurde. (Alle einstelligen Werte werden zurückgegeben.)
quelle
Dies ist mein erstes Mal, dass ich Codegolf spiele. Das sieht ziemlich interessant aus. Ich kann nicht gewinnen, aber ich habe versucht und wollte zeigen, was ich kann.
Python: 104 (89, wenn ich den Import abwickeln kann) - wenn die Ergebnisse genau wie im Beispiel gedruckt werden müssen
Python: 71 - Wenn die Ausgabe außerhalb der Funktion erfolgen kann und die einzige Einschränkung für die Ausgabe darin besteht, dass keine verletzenden Zahlen gedruckt werden
quelle
JavaScript 125 Zeichen
Entschuldigung für die vielen Änderungen, die ich von meinem Handy aus gemacht habe :)
quelle
Dogelang, 42 Nicht-Leerzeichen
Genau wie meine Python-Lösung, nur auf dogelang umgestellt .
quelle