シーンは次のとおりです。
ブライアンが突然吸入器を切に必要としているとき、ピーターは彼の相棒ブライアンとジムにいます。ブライアンは、床に倒れる前にピーターにコンビネーションロックのコードを伝えることができました。
ピーターがブライアンのロッカーに着き、インジケーターが何を指しているのかを見た瞬間、スチューイーは彼を待ち伏せし、彼の顔にコショウのスプレーをいっぱいスプレーして、ピーターを盲目にします。
ピーターは、見ないでロックを開こうとする必要があります。彼はダイヤルを右に回し始め、数字を渡しながらカウントします。その後、彼は正しい番号でダイヤルを左に回し始めますが、カウントを続け、最後にロックが開くまで右に回します。
チャレンジ:
ブライアンからの組み合わせとインジケーターの位置の2つの入力を受け取る関数/プログラムを作成します。Peterがカウントしなければならない数字を出力します。
ルール:
- 組み合わせとインジケータの位置は別々の引数である必要があります。
- 入力は、コマンドプロンプトから、または関数の引数として行うことができます。
- 出力は画面に印刷する必要があります/そうでなければ表示されます(ファイルではなく)
- 開始位置は最初の数字と同じではなく、組み合わせの3つの数字はすべて一意であると仮定します
- これは、下の図に示されているロックで、可能な番号は0〜39です。
手順:
以下のロックを開くには、一連の指示に従う必要があります。
- コードを知っている必要があります。今のところ(38、16、22)と仮定します。
- ダイヤルを3回右に回し(開始番号を3回渡します)、最初の番号(38)がインジケーターと一致したら停止します
- ダイヤルを左に1回転させて最初の数字を渡し、2番目の数字(16)がインジケーターと一致したら停止します。
- ダイヤルを右に回し、3番目の数字(22)がインジケーターと一致したら停止します
- ロックを引き下げる
例:
Input
38 16 22
33
Output
33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 39 38 39 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22
標準コードのゴルフ規則が適用されます。
後で投稿されたソリューションは、デニスの答えよりも短い場合でも勝つことができます。
function combination(code){alert("Help! Someone open this locker, the combination is "+code+"!")}