Herausforderung:
Erstellen Sie ein Programm, das die Eingabe einer positiven Ganzzahl ungleich Null akzeptiert und die 4 nächsten Zahlen in der unten beschriebenen Reihenfolge ausgibt.
Hinweis: Es ist nicht erforderlich zu überprüfen, ob die Eingabe tatsächlich eine positive Ganzzahl ungleich Null ist
Reihenfolge:
Jede Zahl in dieser Sequenz (mit Ausnahme der ersten, bei der es sich um die Eingabe handelt) muss aus n Ziffern bestehen, wobei n eine gerade Zahl ist. Wenn wir die Zahl auf n / 2 Paare aufteilen, sollte die erste Ziffer die Häufigkeit sein, mit der die zweite Ziffer in der vorherigen Ziffer vorkommt
Visuelle Erklärung :
Betrachten Sie dieses Beispiel als "Sequenz-Starter" oder Eingabe. 6577
Die nächste Nummer in der Sequenz sollte folgendermaßen aussehen, 161527
da die Eingabe 1 "6", 1 "5" und 2 "7" hat.
Wenn die Eingabe zu viele Ziffern hat (mehr als 9 einer einzelnen Ziffer), können Sie keine korrekte Ausgabe erhalten.
Beispiel: 111111111111
(12 Einsen ) Die
nächste Zahl in der Sequenz muss 12 Einsen beschreiben. Also teilen wir es in 9 Einsen und 3 Einsen (Summe 9 + 3 = 12)
Nächste Nummer:9131
Sie sollten die Eingabe viermal iterieren und ausgeben (entweder eine Liste / ein Array mit vier Ganzzahlen zurückgeben oder sie durch Trennen mit einem Leerzeichen ausgeben, auch Zeilenumbrüche sind zulässig).
"Die Nummer kann auf viele Arten geschrieben werden. Wie schreibe ich sie?" :
Wenn Sie darüber nachdenken, kann die Beispieleingabe 6577
auch als 271516 geschrieben werden (zwei Siebenen, eine Fünf, eine Sechs). Dies ist jedoch eine ungültige Ausgabe. Sie sollten die Nummer von links nach rechts durchlaufen. Also 161527. Wenn Sie 7657
den Betrag von 7 iterieren würden, dann wäre der Betrag von 6 der Betrag von 5, somit wäre die Ausgabe gültig271615
Beispiel I / O:
Eingabe: 75
Ausgabe:1715 211715 12311715 4112131715
Eingabe: 1
Ausgabe:11 21 1211 3112
Eingang: 111111111111
(12
Einsen ) Ausgang:9131 192113 31191213 23411912
Dies unterscheidet sich von der Frage "Sagen Sie, was Sie sehen", da die Sequenzen unterschiedlich sind: https://oeis.org/A005150 <- Diese gibt Zahlen wie diese zurück:
Eingabe: 1211 Ausgabe: 111221
Während der Sequenz, nach der ich frage würde tun
Input: 1211 Output: 3112
Die beiden Sequenzen sind unterschiedlich und erfordern unterschiedliche Algorithmen.
Meine angeforderte Sequenz: https://oeis.org/A063850
"Mögliche doppelte" Sequenz: https://oeis.org/A005150
Wichtige Spezifikation:
Da es für einige Leute, die diese Frage zu beantworten versuchten, nicht klar genug war, ist die korrekte Ausgabe für k Zeichen, wobei k> 9 ist, nicht "kc" (wobei c char ist), sondern 9c (k-9) c usw. Somit korrekte Ausgabe für 12 Einsen sind nicht 121
(12 1), sondern 9131
(9 Einsen, (12-9) Einsen und so weiter)
Im Zweifelsfall ist Ihr Code falsch, wenn er jemals eine Zahl mit einer ungeraden Anzahl von Ziffern ausgibt (wie 121). Aufgrund der Art der Sequenz sollte er geradzahlige Ziffern ausgeben.
Dies ist Code-Golf, also gewinnt Code mit den wenigsten Bytes.
quelle
1111111111111111111
(19 1's )23411912
statt sein23411219
?Antworten:
PowerShell ,
111 bis104 ByteProbieren Sie es online!
quelle
$i
in Ihrer Schleife verwenden, warum nicht einfach direkt wie Schleife$z=$args;0..3|%{...
$args
(und ich dachte ursprünglich, ich würde es verwenden$i
). Ich wollte es messen, aber dann wurde die Frage geschlossen.Python 2 , 116 Bytes
Probieren Sie es online!
quelle
1111111111111111111
ist falsch. Sollte sein,919111
aber gibt919121
11
sollte Ausgabe sein21 1211 3112 132112
, ich verstehe nicht, warum es111
als erste Iteration ausgegeben wird, die dazu führt , dass die gesamte Kette schlecht05AB1E ,
302321 BytesProbieren Sie es online!
Erläuterung
quelle
Mathematica, 117 Bytes
Scheint, als müsste es nicht so lange dauern.
quelle
C # 246 Bytes
Ungolfed:
Probieren Sie es hier aus (geben Sie die Eingabe in den unteren Frame ein, sobald sie kompiliert ist, und drücken Sie die Eingabetaste)
quelle
Gelee , 27 Bytes
Probieren Sie es online!
Die aufeinanderfolgenden
€
s können nicht verschachtelt werden, da Ketten nicht verschachtelt werden können.Verschachtelung mit separatem Link: 27 Bytes.
Drucken statt kumulieren: 27 Bytes.
Erläuterung
quelle
PHP, 141 Bytes
Probieren Sie es online!
quelle