Die meisten von uns kennen wahrscheinlich das Konzept der Dreiecks- und Quadratzahlen. Es gibt jedoch auch fünfeckige Zahlen, hexagonale Zahlen, septagonale Zahlen, achteckige Zahlen usw. Die N-te Nagonale Zahl ist definiert als die N-te Zahl der Sequenz, die mit einem Polygon von N Seiten gebildet wird. Offensichtlich ist N> = 3, da es keine 2- oder 1-seitigen geschlossenen Formen gibt. Die ersten paar N-ten Ngon-Zahlen sind 0, 1, 2, 6, 16, 35, 66, 112, 176, 261, 370, 506, 672, 871 .... Dies ist die Sequenz A060354 in der OEIS.
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, die bei Angabe einer Ganzzahl n als Eingabe die N-te Nagonalzahl ausgibt / zurückgibt.
Eingang:
Eine ganze Zahl N zwischen 3 und 10 ^ 6.
Ausgabe:
Die N-te Nagonale Zahl, wobei N die Eingabe ist.
Testfall:
25 -> 6925
35 -> 19670
40 -> 29680
Wertung:
Dies ist Code-Golf , niedrigste Punktzahl in Bytes gewinnt!
Antworten:
Neim , 1 Byte
¯ \ _ (ツ) _ / ¯
Probieren Sie es online aus!
quelle
a
th-b
Gonalenzahl zu sein, bei der beide Parameter automatisch mit dem einzigen angegebenen Argument ausgefüllt werden.05AB1E ,
76 Bytes1 Byte dank Neil gespeichert
Probieren Sie es online aus!
Erläuterung
quelle
<Dn*+>;
funktioniert auch für 7 Bytes.<3m
statt<ÐP
?Pyke , 6 Bytes
Probieren Sie es hier aus!
quelle
Japt ,
98 BytesVersuch es
Erläuterung
Dekrementieren (
´
) Sie die Eingabe (U
), addieren Sie die Eingabe cubed (³
) dazu, teilen Sie den Boden durch 2 (z
) und addieren Sie 1 (Ä
).quelle
´U+³ z Ä
´U+³+2 z
.ÄÄ
statt+2
.à3 *3+U
oderU+3*Uà3
(das Guthaben geht teilweise an Lynn) ... Ganz sicher, dass es neu angeordnet werden kann, um mehr Bytes zu sparen.Gelee , 5 Bytes
Probieren Sie es online aus!
Berechnet wählt (n, 3) × 3 + n.
Dies lässt sich leicht auf 05AB1E übertragen:
05AB1E , 5 Bytes
Probieren Sie es online aus!
quelle
f=\
in einem Jelly eingereichten Header? : PPython 2 , 23 Bytes
Probieren Sie es online aus!
quelle
PowerShell ,
3428 ByteProbieren Sie es online aus!
Geschlossene Lösung auf der OEIS-Seite. Verwendete FOIL für weitere 6 Byte Einsparungen.
quelle
MATL , 7 Bytes
Luis Mendos Vorschlag, der etwas klarer ist.
Probieren Sie es online aus!
Probieren Sie es online aus!
Beide Lösungen portieren den Algorithmus von Lynn
quelle
t3Xn3*+
Xn
und es nicht gesehen. Ich bin nicht überzeugt, dass ich weiß, wie man Dokumentation liest ...nchoosek
in Suevers Server suchen, gibt es beide Funktionen als ErgebnisseRecursiva , 11 Bytes
Probieren Sie es online aus!
quelle
JavaScript (ES6), 38 Byte
Rekursion FTW (oder vielleicht nur zum siebten ...)
quelle
Mathematica, 14 Bytes
kürzer als eingebaut !!!
Probieren Sie es online aus!
und 3 Bytes kürzer mit Martin Enders Hilfe
quelle
Cubix ,
2017 Bytes3 Bytes wurden gespeichert, um Emignas Antwort zu portieren .
Probieren Sie es online aus!
ursprüngliche Antwort:
Probieren Sie es online aus!
Erweitert sich zum Würfel
was den
(n*(n-2)^2+n^2)/2
Ansatz umsetzt .quelle
Ohm v2 , 3 Bytes
Probieren Sie es online aus!
quelle
Python 2 ,
2524 Bytes>>1
zu/2
.Probieren Sie es online aus!
quelle
/2
anstelle von verwenden>>1
?Pyth , 7 Bytes
Probieren Sie es hier aus!
Verwendet den Lynn-Algorithmus .
quelle
Gleichstrom, 13 Bytes
Eine ziemlich einfache Implementierung der ersten Formel, die auf der OEIS-Seite aufgeführt ist .
quelle
Japt , 7 Bytes
Probieren Sie es hier aus!
Zuerst war es ein Kommentar zu Shaggys Antwort, aber sie sagten mir, ich sollte ihn selbst posten.
quelle
05AB1E , 2 Bytes
Probieren Sie es online aus!
Wie?
¯ \ _ (ツ) _ / ¯
quelle
Mathematica, 20 Bytes
quelle
cQuents 0 , 16 Bytes
Probieren Sie es online aus!
quelle
Gelee , 6 Bytes
Probieren Sie es online aus!
Verwendet den von Neil inspirierten Emigna-Algorithmus.
quelle
<Dn*+>;
Kommentar mir gehörte ...Java 8, 18 Bytes
Probieren Sie es hier aus.
Der von den meisten anderen Antworten verwendete Ansatz ist der kürzeste in Java. Zum Spaß habe ich auch zwei andere Antworten portiert:
Port von Mr. Xcoders Python 2-Antwort ( 29 Bytes ):
Probieren Sie es hier aus.
Port of Lynn's Jelly Antwort (mit manueller Berechnung von
a choose b
) ( 76 Bytes ):Probieren Sie es hier aus.
quelle