Was ist, wenn wir einen Korridor haben, der aus zwei parallelen Spiegeln besteht?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Jetzt strahlen wir einen Laser runter ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
Oh schau. Es prallte dort gegen Ende ab.
Was ist, wenn wir zwei Laser zeichnen, die sich jedoch in die entgegengesetzte Richtung bewegen?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
Hmm, sie schienen sich dort nicht zu treffen. Das ist praktisch. Was passiert, wenn beide Laser den gleichen Raum einnehmen?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
Ich denke, das war ziemlich offensichtlich, oder?
Das Zeichnen dieser Diagramme von Hand ist ziemlich mühsam (vertrau mir dabei). Vielleicht könnte ein Code das für uns tun?
- Schreiben Sie Code, um zwei parallele Spiegel mit zwei sich überschneidenden, springenden Lasern auszugeben.
- Eingabe (alle ganzen Zahlen):
- Die Breite des Korridors
- Die Länge des Korridors
- Startposition des rechtslaufenden Lasers (nullindexiert, muss kleiner als die Breite sein)
- Startposition des linkslaufenden Lasers (Null-Index, muss kleiner als die Breite sein)
- Prozess
- Wenn ein Laser richtig ausgerichtet ist, wird er in der folgenden Zeile um ein Feld nach rechts gezeichnet.
- Wenn ein Laser weiterläuft, wird er in der folgenden Zeile um eine Stelle nach links gezeichnet.
- Wenn ein Laser seinen Seitenschritt nicht ausführen kann, ändert er seine Richtung, aber nicht seine Position.
- Wenn sich beide Laser auf demselben Index befinden, drucken Sie an diesem Index ein X in Großbuchstaben.
- Ausgabe
- Eine Zeichenfolge mit mehreren Zeilen
- Jede Zeile beginnt und endet mit einem Pipe-Zeichen (|)
- Rechtslaser werden durch einen Backslash (\) gekennzeichnet
- Linkslaufende Laser werden durch einen Schrägstrich (/) gekennzeichnet
- Der Schnittpunkt zweier Laser ist mit einem Großbuchstaben X gekennzeichnet.
- Jede Sprache
- Ich würde gerne TIO- Links sehen
- Versuchen Sie, es in der kleinsten Anzahl von Bytes zu beheben
Testfälle
Breite: 6 Länge: 10 Rechtslauf: 1 Linkslauf: 4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
Breite: 6 Länge: 10 Rechtslauf: 0 Linkslauf: 1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
Breite: 4 Länge: 10 Rechtslauf: 2 Linkslauf: 0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
Breite: 20 Länge: 5 Rechtslauf: 5 Linkslauf: 15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
Breite: 5 Länge: 6 Rechtslauf: 2 Linkslauf: 2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
Breite: 1 Länge: 2 Rechtslauf: 0 Linkslauf: 0
|X|
|X|