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.
23411912
statt sein 23411219
?
1111111111111111111
(19 1's )