In der Eröffnungsszene des Dark Knight kommt es zu einem eher unangenehmen Dialog zwischen einem CIA-Agenten und dem Bösewicht Bane.
CIA-Agent: "Wenn ich diese [Maske] abhebe, wirst du sterben?"
Bane: "Es wäre extrem schmerzhaft ..."
CIA-Agent: "Du bist ein großer Kerl."
Bane: "... für dich."
Es ist nicht sicher, ob Bane vorhat, "schmerzhaft für dich" oder "großer Kerl für dich" zu sagen. Lassen Sie uns dieses Problem ein für alle Mal durch Code-Golfen lösen!
Herausforderung
Ihre Aufgabe ist es, ein Programm zu schreiben, das den obigen Dialog in Abhängigkeit von einer als Eingabe angegebenen Ganzzahl neu anordnet.
CIA-Agentendialogwörter sind:
If I pull that off will you die? You're a big guy.
Banes Dialogwörter sind:
It would be extremely painful... for you!
Bitte beachten Sie, dass die?, You’re, painful...und you!werden als einzelne Wörter betrachtet.
- Konvertieren Sie eine Ganzzahl n als Eingabe in eine Binärzahl
- Lesen Sie die Binärziffern von links nach rechts und geben Sie das nächste Wort aus dem CIA-Agentendialog aus, wenn es sich um die Ziffer handelt
1, und das nächste Wort aus dem Bane-Dialog, wenn es sich um die Ziffer handelt0. Die Wörter sollten durch ein Leerzeichen getrennt sein. Wenn sich der Lautsprecher ändert, fügen Sie einen Zeilenvorschub hinzu. Stellen Sie außerdem jeder Dialogzeile den Sprechernamen (BANE:oderCIA:) voran.
Sie können davon ausgehen, dass die Eingabe immer mit einer 1 in binärer Form beginnt und 12 Einsen und 7 Nullen hat.
Beispiel
522300
Umgerechnet in binär:
1111111100000111100Die Zahl beginnt mit 8, daher geben wir die 8 ersten Wörter aus dem Agentendialog der CIA aus und stellen ihnen CIA voran:
CIA: If I pull that off will you die?Dann haben wir 5 Nullen, also bekommen wir die 5 ersten Wörter aus Banes Dialog:
BANE: It would be extremely painful...Dann gibt es 4, also geben wir die 4 nächsten CIA-Wörter aus:
CIA: You’re a big guy.Dann 2 Nullen:
BANE: for you!
Endergebnis:
CIA: If I pull that off will you die?
BANE: It would be extremely painful...
CIA: You’re a big guy.
BANE: for you!
Weitere Testfälle:
494542
CIA: If I pull that
BANE: It would be
CIA: off
BANE: extremely
CIA: will you die? You're
BANE: painful... for
CIA: a big guy.
BANE: you!
326711
CIA: If
BANE: It would
CIA: I pull that off will you
BANE: be extremely painful... for
CIA: die? You're
BANE: you!
CIA: a big guy.