Ich habe den Sandkasten vor dem Posten dieser Herausforderung nicht überprüft - anscheinend wurde diese Herausforderung von Cᴏɴᴏʀ O'Bʀɪᴇɴ vorgeschlagen .
Schreiben Sie bei einer Ganzzahleingabe ein Programm, das das Rätsel "Vier ist eine magische Zahl" ausgibt
- Vier ist die magische Zahl
- Fünf ist vier und vier ist die magische Zahl
- Sechs ist drei und drei ist fünf und fünf ist vier und vier ist die magische Zahl
- Elf ist sechs und sechs ist drei und drei ist fünf und fünf ist vier und vier ist die magische Zahl
- Fünfhundert ist elf und elf ist sechs und sechs ist drei und drei ist fünf und fünf ist vier und vier ist die magische Zahl
Wenn Sie das Rätsel bereits kennen oder zu faul sind, um es zu lösen , finden Sie hier eine Erklärung
Die nächste Nummer ist die Anzahl der Buchstaben in der vorherigen Nummer. So zum Beispiel fünf hat vier Buchstaben, so dass die nächste Nummer vier .
Sechs hat drei Buchstaben, also ist die nächste Zahl 3 und Drei hat fünf Buchstaben, also ist die nächste Zahl 5 und Fünf hat vier Buchstaben, also ist die nächste Zahl 4.
Der Grund, warum das Rätsel bei Vier endet, ist, dass Vier vier Buchstaben hat und vier ist vier und vier ist vier und vier ist vier ... (vier ist die magische Zahl)
Testfälle
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
Regeln
- Die Eingabe kann entweder
STDIN
einer Funktion entnommen oder als Argument für eine Funktion verwendet werden - Die Eingabe ist eine positive Zahl zwischen 0 und 999.999
- Die Eingabe enthält nur Zahlen (sie folgt dem regulären Ausdruck
^[0-9]+$
). - Die Eingabe kann entweder als Ganzzahl oder als Zeichenfolge erfolgen
- Bei der Konvertierung in eine Wortfolge sollten Leerzeichen und Bindestriche nicht in die Zählung einbezogen werden (100 [Einhundert] sind 10 Zeichen, nicht 11). 1.742 [Eintausendsiebenhundertzweiundvierzig] sind 31 Zeichen, nicht 36).
- Bei der Umwandlung in eine Zeichenfolge sollten 100 Einhundert, nicht Hundert oder Hundert, 1000 Eintausend und nicht Tausend oder Tausend sein.
- Wenn in einen String umgewandelt 142 sollte Einhundert Forty Two, nicht hundert sein und Forty Two
- Die Ausgabe unterscheidet nicht zwischen Groß- und Kleinschreibung und sollte dem Format " N ist K und K ist M und M ist ... und vier ist die magische Zahl" folgen (es sei denn, die Eingabe ist 4, in diesem Fall sollte die Ausgabe einfach "vier" sein ist die magische Zahl ")
- Die Ausgabe kann Zahlen anstelle von Buchstaben verwenden ("5 ist 4 und 4 ist die magische Zahl" anstelle von "fünf ist vier und vier ist die magische Zahl"), solange Ihr Programm immer konsistent ist
- Die Ausgabe kann entweder der Rückgabewert einer Funktion sein oder auf gedruckt werden
STDOUT
- Es gelten Standardlücken
- Das ist Code-Golf , also gewinnt das kürzeste Programm in Bytes. Viel Glück!
Bonus
-30 Bytes, wenn das Programm funktioniert, wenn die Eingabe zwischen -999.999 und 999.999 liegt.
Negative Zahlen haben, wenn sie in Wörter umgewandelt werden, nur ein "Negativ" vor sich. Zum Beispiel -4
ist "Negative Four", Negative Four ist zwölf und zwölf ist sechs und sechs ist drei und drei ist fünf und fünf ist vier und vier ist die magische Zahl
-150 Byte, wenn das Programm keine eingebauten Funktionen zum Generieren der Zeichenfolgendarstellung der Zahl verwendet
Bestenliste
Dies ist ein Stack-Snippet, das sowohl eine Rangliste als auch eine Übersicht der Gewinner nach Sprache generiert.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift unter Verwendung der folgenden Markdown-Vorlage
## Language Name, N bytes
Wobei N die Größe Ihrer Übermittlung in Byte ist
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. alte Punkte durchstreichen oder Flags in die Byteanzahl aufnehmen möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in Ihrer Kopfzeile ist
## Language Name, <s>K</s> X + 2 = N bytes