So entsteht eine uninteressante Zahl (die ich nur für diese Herausforderung völlig wettgemacht habe):
- Nehmen Sie eine positive ganze Zahl N
- Erstellen Sie eine neue Zahl O, indem Sie die Ziffern von N am Ende von N hinzufügen
- Die letzte uninteressante Zahl ist O * N
Zum Beispiel für N = 12:
- O = 1212
- O * N = 1212 * 12
- Die endgültige Nummer ist 14544
Eingang
Eine positive ganze Zahl N (N> 0) oder das Äquivalent Ihrer Sprache. Sie müssen keine falschen Eingaben abfangen.
Ausgabe
Die entsprechende uninteressante Nummer.
Testfälle
1 -> 11
2 -> 44
3 -> 99
10 -> 10100
174 -> 30306276
Wertung
Kürzester Code in Bytes gewinnt.
Antworten:
05AB1E , 3 Bytes
Erklärt
Probieren Sie es online aus
quelle
str
und*
interpretiert die Zeichenfolge als Zahl. Sehr nützlich :)JavaScript (ES6), 10 Byte
Muss mit dem Argument als aufgerufen werden
String
, nicht alsNumber
.Verwendungszweck:
-3 Bytes dank @Quills Vorschlag.
quelle
_=>(_+_)*+_
_
als ein beliebiges Zeichen für eine Variable? (PS -(_+_)
sieht total aus wie ein Hintern)$
würde auch funktionierenn=>(1+10**-~Math.log10(n))*n*n
(hat leider-~
eine höhere Priorität als**
) oder 31 in ES6n=>-~`1e${-~Math.log10(n)}`*n*n
. Selbst Rekursion hat mich 32 Bytesf=(n,m=1)=>n<m?-~m*n*n:f(n,m*10)
Java 8,
29 26 2521 BytesGott segne Lambda
c-> Long.decode (c + "" + c) * c;quelle
vim, 11
crcrcrcrcr ...
quelle
<C-r>
ist nicht druckbar.<C-r>
ein Wagenrücklauf?<C-r>
ist Kontrolle plus r. Wagenrücklauf ist<cr>
.Pyth,
54 BytesErläuterung:
Teste es hier .
quelle
Emacs, 17 Bytes
(*SPACEC-SPACEC-EM-YSPACEC-YC-Y)C-J
Erläuterung
(*
an Punkt (vor der Zahl) hinzu;)
am Ende hinzu;Beispiel
Cursor dargestellt durch eine Pipe (
|
)|174
(* |174
(* 174|
(* 174 |
(* 174 174174|
(* 174 174174)|
Ergebnis
quelle
C #,
1923 BytesOhne Zeichenketten 47 Bytes
quelle
(n)=>{int.Parse(""+n+n)*n}
2;
?Python 2.7, 21 Bytes:
Nun, dies muss die kürzeste Python-Antwort sein, die ich je in kürzester Zeit geschrieben habe. Es handelt sich um eine anonyme Lambda-Funktion, die ausgeführt werden kann, indem Sie einen beliebigen Namen vergeben und sie dann wie eine normale Funktion aufrufen
print()
. Wenn Ihre Eingabe beispielsweise lautet12
und die Funktion benannt wurdeH
, würde dies so heißenprint(H(12))
.Probieren Sie es online! (Ideone)
Beachten Sie, dass dies nur für Werte bis und gleich
9223372036854775807
einem höheren Wert funktioniert undrepr()
einL
am Ende der Ganzzahl steht. Daher ist9223372036854775807
diese 24-Byte- Version für Werte größer als die folgende:Versuchen Sie dies online! (Ideone)
quelle
Gelee, 4 Bytes
Probieren Sie es online aus
Erläuterung
quelle
;DDx
Ḍ
man nur 1 Byte? Normalerweise verwenden wir UTF-8, in dem es 3 dauert (und das × 2 dauert, aber es ist 1 Byte in z. B. ISO8859-1).C
706854535244Vorherige Version (48 Byte, keine mathematischen Funktionen), 16 Byte dank @LeakyNun, 1 Byte dank @FryAmTheEggman, 4 Byte dank @TobySpeight gespeichert:
Rufen Sie
f()
mit einem Argument die Nummer auf, und sie gibt die entsprechende uninteressante Nummer zurück.Testprogramm
Testergebnisse:
Probieren Sie es online!
quelle
f(n){int b=1;while(a)b*=10,a/=10;return(n+n*b)*n;}
math.h
, aber Sie mit ihm in GCC wegkommen, wolog10()
undpow()
eingebaut sind, und der Compiler lediglich warnt vor „unvereinbar implizite Deklaration von integrierten Funktion“ anstatt davon auszugehen (wie es sein soll) , dass beide kehren zurückint
.a
...Dyalog APL , 7 Bytes
⍕
String-Darstellung⍕,
Zeichenfolgendarstellung voranstellen#⍎
in Zahl umwandeln (im Root-Namespace)⊢×
multiplizieren Sie mit der ursprünglichen Zahlquelle
J, 7 Bytes
Erläuterung
quelle
Under
das bei der Verkettung von Zeichenfolgen richtig funktioniert. Was für eine großartige Entdeckung für mich! Danke.* ,~ &.": n
und auch nicht für die Bildung anderer Verben verwendet werden kann.Retina ,
2720 BytesWird bei großen Eingaben etwas langsam, da das Ergebnis vor der letzten Stufe unär dargestellt wird.
Probieren Sie es online! (Die erste Zeile aktiviert eine durch Zeilenvorschub getrennte Testsuite.)
Erläuterung
Ich werde
2
als Beispiel eine Eingabe verwenden (da die unären Darstellungen für größere Eingaben etwas unhandlich werden).Stufe 1: Substitution
Indem
^
wir den Anfang der Zeichenkette mit abgleichen, stellen wir einfach ein paar Dinge voran.$_
bezieht sich auf die Eingabezeichenfolge selbst und$*:
bedeutet, dass wir so viele Doppelpunkte einfügen. So bekommen wir:Stufe 2: Substitution
Jetzt passen wir es immer
:
wieder durch$_$*:
. Natürlich wird diese Zeit$_
nicht als Ganzzahl ausgewertet (:: 22
in unserem Beispiel jedoch als Ganzzahl ), sondern es wird$*
nur nach der ersten Dezimalstelle in der Zeichenfolge gesucht. Dies ergibt die Eingabe, die mit sich selbst verknüpft ist (O
in der Challenge-Spezifikation). Wir werden mitN*O
Doppelpunkten enden , gefolgt vonO
:Stufe 3: Spiel
Alles, was übrig bleibt, ist das Zählen der
:
s, um von unär zurück zu dezimal zu konvertieren, was genau das ist, was diese Stufe tut.quelle
CJam , 8 Bytes
Probieren Sie es online!
quelle
r__+i\i*
, der die gleiche Länge hat.r__+si*
, wos
ist „diese Operation anwenden über den Stapel“), aber ich sehe nicht , so etwasGelee,
86 BytesProbieren Sie es online!
Erläuterung
quelle
³
.Awk, 13 Bytes
Setzen Sie die Linie auf 2 von sich selbst multipliziert mit sich selbst
quelle
Brachylog , 7 Bytes
Erläuterung
quelle
Python, 42 Bytes
Rein rechnerisch, ohne Fäden!
Ideone es!
quelle
Matlab / Octave, 20 Bytes
Dies ist eine anonyme Funktion, die die Eingabe als Zeichenfolge verwendet.
Beispiel Verwendung:
Oder versuchen Sie es online mit ideone .
Erläuterung
Der Code erstellt eine Zeichenfolge, indem er die Eingabezeichenfolge zweimal verkettet, dann das Zeichen
*
(mit ASCII-Code 42) und dann die Zeichenfolge erneut. Die verkettete Zeichenfolge wird dann ausgewertet.quelle
42
das?*
*
und dann die Zeichenfolge erneut verkettet . Die verkettete Zeichenfolge wird dann ausgewertet. Ich werde das in der AntwortMATL , 6 Bytes
Probieren Sie es online!
quelle
zsh, 13 Bytes
Nimmt Eingaben als Befehlszeilenargument und gibt sie an STDOUT aus.
Dies funktioniert nur in zsh, aber hier ist 15 Bytes in Bash verwendet
echo
statt<<<
:quelle
Perl, 11 Bytes
+ die
p
undl
Flags.(renn mit
perl -ple '$_*=$_ x2'
)-2 Bytes dank Pipe.
quelle
$_*=$_ x2
-l
$_ x2
wird,...\n...\n
was, wenn es als Zahl von Perl konvertiert wird, am ersten endet\n
6
.Excel VBA, 35 Bytes
Unter mit der Nummer angerufen, gibt msgbox Antwort zurück
Alternatives Excel VBA, 42 Bytes
Die in der Formel angegebene Zahl gibt die Antwort zurück.
quelle
Lua, 20 Bytes
Übernimmt ein Befehlszeilenargument und gibt es über STDOUT aus
Und ungolfed wie @LeakyNun im Kommentar gefragt :)
quelle
Pyke,
54 BytesProbieren Sie es hier aus!
Auch 5 Bytes mit String-Eingaben
quelle
PHP,
2524 BytesKurze Eröffnungsmarken sind nützlich für überraschend wenige Golfherausforderungen, zum Glück ist dies eine davon. Leider ist die Rangfolge der Operatoren das Gegenteil der Reihenfolge, in der Sie sie ausführen müssen, sodass viele Klammern erforderlich sind.
edit: Mir ist aufgefallen, dass ich, da ich eh Klammern verwende, den Verkettungsoperator effektiv überspringen kann, indem ich die Reihenfolge der Operationen ändere.
quelle
Gleichstrom,
11-10BytesIch wusste, dass ich irgendwann eine Verwendung für den
Z
Befehl finden würde!Die Bedienung ist recht einfach: Zählen Sie die Ziffern, nehmen Sie 10 hoch und addieren Sie eine. Dies ergibt einen Multiplikator, der die Zahl mit sich selbst verkettet. Dann multiplizieren Sie einfach.
I / O verwendet den Stack wie gewohnt für DC.
Volles Programm
Das habe ich für die Tests verwendet:
Die zwei zusätzlichen Befehle geben uns Pipeline-E / A.
Tests
Dank gebührt Sir Biden XVII (1 Byte).
quelle
A
für10
ein Byte zu speichern. Gut gemacht!Mumps, 11 Bytes
Dies ist eine der seltenen Golfherausforderungen, bei denen die Besonderheiten von Mumps sehr nützlich sein können. Erstens sind alle Variablen Zeichenfolgen, und alle mathematischen Gleichungen werden streng von links nach rechts ausgewertet (wie in: nicht PEMDAS), sodass 1 + 2 * 4 = 12 in Mumps anstelle von = 9 wie in PEMDAS. Also (kaum) ungolfed:
Ein Wort der Vorsicht - da die von mir verwendete Variante von Mumps (InterSystems Ensemble) nicht den Wagenrücklauf für stdin wiedergibt, werden die Eingabe- und Ausgabenummer verkettet angezeigt. Um dies zu korrigieren / die Lesbarkeit zu verbessern, müssen Sie zwei Bytes hinzufügen und ein manuelles CR / LF hinzufügen.
Da ich diese Anforderung jedoch nicht in den Regeln der Challenge gesehen habe, bin ich mir ziemlich sicher, dass ich mit dem kürzeren Code gut umgehen kann. Wenn ich mich irre, wenden Sie sich bitte an LART mich und ich werde meine Antwort ändern. :-)
quelle
PowerShell,
25, 18 ByteVielen Dank an TessellatingHeckler, der mich daran erinnert hat, wie sehr PS die Pipeline liebt.
Neue 18 Bytes:
Alte 25 Bytes:
Erläuterung:
Testen (als boring.ps1 speichern):
Auf keinen Fall die beste Antwort, aber trotzdem viel Spaß!
quelle
process{$_*"$_$_"}
beträgt 18 Bytes und wird von "stdin" (dh der Pipeline) eingegeben, z. B.174|script.ps1
param($a);$a*"$a$a"
param($n)$n*"$n$n"
(was Darth ohne hatte;
) ist gleich lang und keine REPL.test.ps1
Datei, die aus der Pipeline liest, nicht ? Zählt auch ein Bash-Shell-Skript, das aus stdin liest, nicht?Batch,
272018 BytesBearbeiten: 7 Bytes dank @TessellatingHeckler gespeichert. Weitere 2 Bytes dank @ E 2Gᴏʟғᴇʀ gespeichert.
quelle
set /a
An der Eingabeaufforderung wird das Ergebnis der Zuweisung ausgegeben. ->@cmd/c set/a n=%1%1*%1
für 22 Bytes.@cmd/cset/a%1%1*%1
für 18.cmd/c
Teil wird benötigt, da das Batch-Datei-Ausführungs-Tool nichtcmd
selbst ist.