Nicht zu verwechseln mit Find the factorial!
Einführung
Die Fakultät einer ganzen Zahl n
kann berechnet werden durch
Das ist relativ einfach und nichts Neues. Fakultäten können jedoch auf doppelte Fakultäten erweitert werden , so dass
für gerade Zahlen und
für ungerade Zahlen. Wir sind aber nicht auf doppelte Fakultäten beschränkt. Zum Beispiel
oder
oder
abhängig von Startwert.
Zusammenfassend:
wobei
Oder im Klartext: Subtrahieren Sie die Fakultätszählung wiederholt von der Basiszahl und multiplizieren Sie alle resultierenden positiven ganzen Zahlen.
Die Herausforderung
Schreiben Sie eine Funktion, die jede Art von wiederholten Fakultäten für jede nicht negative ganze Zahl berechnet.
Eingang
Entweder
- Eine Zeichenfolge mit einer nicht negativen Ganzzahl zur Basis zehn, gefolgt von mindestens einem Ausrufezeichen. ZB
"6!"
oder"9!!"
oder"40!!!!!!!!!!!!!!!!!!!!"
.
oder
- Dieselben Werte werden durch zwei Ganzzahlen dargestellt: ein nicht negativer Basiswert und ein positiver Wert, der die Fakultätszählung darstellt. Dies kann gemäß einem beliebigen Format aus den Standard-E / A-Regeln erfolgen.
Ausgabe
Das Ergebnis dieser Berechnung.
Challenge-Bemerkungen
0!
entspricht1
per definitionem. Ihr Code muss dies berücksichtigen.- Die Fakultätszählung wird durch den außerhalb dieses Bereichs begrenzt. Sie können alles ausgeben. Abgesehen davon , das ist die einzige Ausnahme von dieser Regel.
0!
Beispiele
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Probieren Sie es mit einer ungolfed Python-Implementierung aus: Probieren Sie es online aus!
Allgemeine Bemerkungen
- Das ist Code-Golf , also gewinnt die Antwort mit den wenigsten Bytes in jeder Sprache.
- Es gelten Standardregeln , E / A-Regeln und Regelungslücken .
- Bitte fügen Sie einen Try it Online- Link hinzu, um die Funktionsweise Ihres Codes zu demonstrieren.
- Bitte begründen Sie Ihre Antwort mit einer Erklärung Ihres Codes.
3!!!!!!!
sollte nicht undefiniert sein - es sollte nur die Antwort geben 3
. Es ist dasselbe wie 1!!=1
(nicht undefiniert). Außerdem besagt Ihre Eingabespezifikation, dass es immer mindestens eine geben wird !
, sodass das erste Beispiel 3
nicht der Spezifikation entspricht.
(3!)!
zu entfernen . Es ist ein irreführender Name. Ich ging davon aus, dass die Factorial-Funktion wiederholt in einer Kette angewendet werden würde, und musste sorgfältig lesen, um zu sehen, was es tatsächlich war. Zum Glück erklärt die Frage es klar. Ein besserer Name könnte schrittweise oder schrittweise oder so sein.
0!
jedoch in den Hinweisen zur Herausforderung, wird angegeben, dass die Fakultätsanzahl kleiner oder gleich dem Basiswert ist.