Einführung
Nehmen wir die Nummer 180
. Dies ist eine interessante Zahl, weil die Summe der Ziffern dieser Zahl gleich ist:
1 + 8 + 0 = 9
Und die quadratische Version dieser Zahl, oder:
180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9
Dies sind beide 9 . Die Summe der Ziffern der ursprünglichen Nummer und der quadrierten Nummer ist identisch. Dies ist natürlich auch bei OEIS zu finden: A058369 .
Aufgabe
Bei einer nicht-negativen Ganzzahl n
geben Sie die n
th positive Zahl mit dieser Bedingung aus.
Testfälle ( null-indiziert )
Input > Output
0 > 1
1 > 9
2 > 10
3 > 18
4 > 19
5 > 45
6 > 46
7 > 55
8 > 90
9 > 99
10 > 100
11 > 145
12 > 180
13 > 189
14 > 190
15 > 198
16 > 199
17 > 289
18 > 351
19 > 361
Die Eingabe kann auch 1-indiziert werden, wenn dies besser zu Ihnen passt.
Das ist Code-Golf , also gewinnt die Einsendung mit der geringsten Anzahl von Bytes!
^₂;?{ẹ+}ᵛ
Antworten:
Jelly, 13 Bytes
Die Eingabe ist 1-indiziert. Probieren Sie es online!
Wie es funktioniert
quelle
Haskell, 54 Bytes
Anwendungsbeispiel:
([x|x<-[1..],s x==s(x^2)]!!) 17
->289
.quelle
JavaScript (ES6),
76 7372 ByteIch habe 30 Minuten damit verbracht, dies zum Laufen zu bringen, bis mir klar wurde, dass ich die falsche Variable ausgegeben habe: |
Dies ist nullindiziert.
quelle
Perl 6,
4746 Bytesquelle
05AB1E ,
1098 Bytes1-indiziert.
-1 Byte dank @Emigna durch Entfernen des Impliziten
½
(Anstiegcounter_variable
nach jeder Iteration) am Ende-1 Byte dank @Grimy durch Entfernen des duplizierten
SO
durch Verwenden von‚1ö
Probieren Sie es online aus.
Erläuterung:
quelle
½
hier nicht , da es implizit istµNDn‚1öË
.1ö
ist wieSO
aber vektorisiert, wodurch wir Codeduplizierungen vermeiden können.Mathematica, 64 Bytes
Einfache anonyme Funktion. Nullindexiert.
quelle
Pyth, 15
1 Byte dank DenkerAffe!
Probieren Sie es hier aus oder führen Sie eine Test Suite aus .
Verwendet die Option 1-indiziert.
Naive Implementierung mit
.f
der die erstenn
Zahlen abgerufen werden, die der gegebenen Bedingung entsprechen.quelle
h
Sie entfernen, wenn Sie eine explizit zulässige 1-Indizierung verwenden.MATL ,
2423 BytesVerwendet 1-basierte Eingabe.
Probieren Sie es online!
quelle
Julia,
7966 BytesDies ist eine rekursive Funktion, die eine Ganzzahl akzeptiert und eine Ganzzahl zurückgibt. Es wird eine 1-basierte Indizierung verwendet.
Wir speichern einige Dinge als Funktionsargumente:
n
: Die Eingabex
: Ein Zähler für wie viele Zahlen mit dieser Bedingung wir gefunden habeni
: Eine Zahl, die auf den Zustand überprüft werden solls
: Eine Funktion zur Berechnung der Summe der Ziffern ihrer EingabeWhile
x
ist kleiner als die Eingabe, wir rekursiv, inkrementieren,x
wenni
die Bedingung erfüllt ist, und inkrementiereni
. Einmalx == n
kehren wir zurücki
, aber wir müssen 1 subtrahieren, weil es zu oft inkrementiert wurde.quelle
Konvex 0,2,
36,35 BytesConvex ist eine neue Sprache, die ich entwickle und die stark auf CJam und Golfscript basiert. Den Interpreter und die IDE finden Sie hier . Die Eingabe ist eine Ganzzahl in die Befehlszeilenargumente. Indizes sind einseitig. Verwendet die CP-1252- Codierung.
quelle
Mathematica,
63606159 BytesWährenddessen tauchte die andere Antwort auf, aber ich schlage sie um ein einzelnes Byte und poste dies, bevor die eine golfen wird.Einer indiziert.quelle
>2457
. Einfach zu erhöhenRange
hilft nicht, weilA058369[n]/n
es nicht konvergiert.10^#
wäre kürzer als2^#*9
. Natürlich wird es zu langsam, nachdem n größer ist als ungefähr 6 ...9^#
? FilRetina, 103 Bytes
Auf jeden Fall golfen.
Verwendet die neue Retina-Funktion
%
zum Quadrieren (funktioniert daher noch nicht mit der Online-Version).quelle
Mathcad,
7050 BytesMathcad hat keine eingebauten Funktionen, um eine Zahl in eine Ziffernfolge umzuwandeln. Die Benutzerfunktion d (a) übernimmt diese Aufgabe. Ein Programm durchläuft dann die positiven ganzen Zahlen und prüft auf Gleichheit der Summen, bis es n Zahlen im Vektor v akkumuliert hat. Das Programm wird mit dem Operator = ausgewertet, der den Ergebnisvektor anzeigt. ( Beachten Sie, dass das gesamte Programm genau so angezeigt wird, wie es unten im Mathcad-Arbeitsblatt angezeigt wird. )
Aktualisiertes Programm: Setzt die Standardinitialisierung von a auf Null voraus und nutzt die Tatsache, dass Mathcad den Wert der zuletzt ausgewerteten Anweisung in einem Programm zurückgibt.
Verwendet die Auswertungsreihenfolge von Ausdrücken, um die Variable a in der ersten Summe zu erhöhen (und die dann zur Verwendung in der Summe der Quadrate verfügbar ist).
Originalprogramm: Liefert einen Vektor aller Zahlen bis n.
quelle
Japt , 15 Bytes
1-indiziert
Versuch es
quelle
Java 8, 113 Bytes
0-indiziert
Erläuterung:
Probieren Sie es online aus.
quelle
Perl 5
-p
, 53 BytesEnthält
+1
für-p
1 basiert
Probieren Sie es online!
quelle
TI-BASIC
6662 BytesAns
Die Hilfsfunktion generiert die Summe der Ziffern des Wertes in
Ans
.Beispiele:
Erläuterung:
Hinweis: TI-BASIC ist eine Token-Sprache. Die Anzahl der Zeichen entspricht nicht der Anzahl der Bytes.
quelle
J , 62 Bytes
Probieren Sie es online!
1 indiziert. J hat diese "n-ten" Aufgaben erneut nicht gut gemeistert, weil die Buchhaltung zu hoch war.
quelle
APL (NARS), 49 Zeichen, 98 Byte
1-indiziert, Test:
quelle
MathGolf , 10 Bytes
Probieren Sie es online!
Erläuterung
ú
quelle