Dies ist ein häufiges Rätsel, das viele von Ihnen manuell gelöst haben. Jetzt ist es an der Zeit, einen Algorithmus zu schreiben, um dasselbe zu lösen.
Es gibt gleich viele Matchsticks, die in zwei verschiedenen Seiten in einer Richtung zueinander angeordnet sind. Es gibt einen einzigen leeren Raum zwischen ihnen. Sagen Sie etwas wie die folgende Abbildung (wenn die Gesamtzahl der Matchsticks 4 beträgt).

Jeder Stock kann entweder einen Schritt nach vorne schieben (wenn der unmittelbare vordere Raum frei ist) oder er kann über einen Stock in seiner Vorderseite gesprungen werden und in den freien Raum landen (wenn dieser Raum frei ist). Die Bewegung in umgekehrter Richtung ist nicht möglich (auch der Platz ist frei). Ein Rückwärtssprung ist ebenfalls nicht zulässig. In einem Schritt ist nur eine Bewegung zulässig.
Jetzt müssen Sie einen Algorithmus schreiben, um die erforderlichen Mindestschritte zu ermitteln, mit denen alle Match-Sticks auf der linken Seite auf der rechten Seite und alle Match-Sticks auf der rechten Seite auf der linken Seite landen.
Zum Beispiel: Wenn es insgesamt 2 Streichhölzer gibt (1 auf jeder Seite), sind die Schritte:

Hinweis: In der obigen Abbildung wurde der linke Seitenstock zuerst bewegt. Eine andere Lösung besteht, wenn sich der rechte Seitenstab zuerst bewegt. Für dieses Problem müssen Sie jedoch nur eine Lösung angeben. Dies setzt auch voraus, dass sich der linke Stick zuerst bewegt.
Die folgende Abbildung beschreibt die Bewegungen mit 4 Streichhölzern (2 auf jeder Seite):

Hinweis: In der obigen Abbildung wurde der linke Seitenstock zuerst bewegt. Eine andere Lösung besteht, wenn sich der rechte Seitenstab zuerst bewegt. Für dieses Problem müssen Sie jedoch nur eine Lösung angeben. Dies setzt auch voraus, dass sich der linke Stick zuerst bewegt.
[Annahme: Die Eingabe kann eine beliebige gerade Zahl zwischen 02 und 14 sein (dh 1 bis 7 Matchsticks auf jeder Seite). Für Eingaben außerhalb dieses Bereichs müssen Sie weder eine Validierung durchführen noch eine Fehlermeldung angeben. Hinweis: In der Ausgabe wird jeder Schritt durch ein '|' getrennt. (Rohr-) Charakter. COBOL-Programmierer sollten immer PIC 9 (2) als Eingabegröße annehmen und können auch davon ausgehen, dass die Ausgabe eine feste maximale Länge von 450 Zeichen hat und rechts mit Leerzeichen aufgefüllt ist.]
Beispieleingabe:
02
Beispielausgabe:
01To02|03To01|02To03|
Beispieleingabe:
04
Beispielausgabe:
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
Beispieleingabe:
06
Beispielausgabe:
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|



