チャレンジ:
整数入力を受け取るプログラムまたは関数を作成します。これは、以下に指定されているように新しいプログラム/関数を出力します。
入力:
整数n
:時限爆弾が爆発するまでの秒数。
出力:
秒単位の時間n
を入力として使用した元のプログラムは、次のことを行う新しいプログラム/関数を出力します。
- している
n
以前のプログラムが実行されてからの秒が経過しますか?印刷するBOOM!
- それ以外の場合:プログラム/関数を出力します。それ自体を実行すると、タイマーが
n
秒にリセットされます(最初に出力されたプログラム/関数と同じように動作します)。
注:開始時刻が変更されているため(少なくともほとんどの言語では)、最初に出力されたプログラム/関数とまったく同じではありません(以下の説明の例を参照)。
疑似コードの例:
元のプログラムがABC
あり、入力が60
秒であるとしましょう:
ABC
&60
出力DEF(60)
。
- を
DEF(60)
60秒以内に実行すると、が出力されますDEF_G(60)
。これはとまったく同じようDEF(60)
に機能しますが、新しい開始時刻が指定されます。 - 場合は
DEF(60)
、60秒後に実行され、それの出力は以下となりますBOOM!
。
私が「開始時間」とはどういう意味かを明らかにする例:
- 入力
60
秒の基本プログラムはで実行され12:00:00
ます。開始時刻がの最初の出力プログラムを出力します12:00:00
。 - の開始時間を含むこの最初の出力プログラム
12:00:00
は、で実行され12:00:45
ます。開始時刻がの2番目の出力プログラムを出力します12:00:45
。 - 開始時刻がこの3番目の出力プログラムは、
12:00:45
で実行され12:01:25
ます。開始時刻がの4番目の出力プログラムを出力します12:01:25
。 - 開始時刻がこの4番目の出力プログラムは、
12:01:25
で実行され12:05:00
ます。出力しますBOOM!
。
最初の出力がのBOOM!
後12:01:00
にどのように印刷されるかに注意してください。ただし、出力プログラムは12:01:25
ステップ3であっても、次のプログラムをBOOM!
出力します(出力プログラムはその最初の出力プログラムよりも開始時間が長いため)。 。
チャレンジルール:
- デフォルトのクインルールが適用されます。
- 少なくとも
n
数秒は経過しているはずです。だから、入力された場合60
、時間を開始した12:00:00
時に、12:01:00
それが出力v2のプログラムをまだしますが、で12:01:01
、それが出力しますBOOM!
。 - 出力プログラムは入力を受け取りません(短い場合は空の未使用パラメーターを除きます)。開始時間は、「ハードコードされた」値として次のプログラムに与える必要があります(そのため、出力プログラムの出力は、前のプログラムとほとんど同じではありません(ほとんどの言語)。
- メインプログラム/関数のサイズのみがバイトでカウントされます。
- プログラム/関数は、文字列(またはバイト/文字配列/リストなどの同等の適切な形式)、言語がこれをサポートしている場合は関数として、または他の適切な形式(不明な場合は問い合わせてください)として出力できます。
一般的なルール:
- これはcode-golfなので、バイト単位の最短の回答が優先されます。
コードゴルフ言語では、コードゴルフ言語以外の言語で回答を投稿しないようにしないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 - 回答には標準規則が適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターと戻り値の型の完全なプログラムで使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストを含むリンクを追加してください。
- また、必要に応じて説明を追加してください。