これに似た質問が数年前に聞かれましたが、これはさらにトリッキーです。
挑戦は簡単です。繰り返しのような任意の繰り返し構造を使用せずにコードを実行(選択した言語での)プログラム書きwhile
、for
、do while
、foreach
またはgoto
(だから、すべてあなたnitpickersのために、あなたはループを使用することはできませんが)。ただし、関数自体がセンスを呼び出すため、再帰は許可されません(以下の定義を参照)。そうすれば、この課題は非常に簡単になります。
ループで何を実行する必要があるかについての制限はありませんが、他の人が実装されているものを正確に理解できるように、答えを説明してください。
定義にこだわる人のために、この質問のループの定義は次のとおりです。
A programming language statement which allows code to be repeatedly executed.
そして、この質問の再帰の定義は、標準の再帰関数定義になります。
A function that calls itself.
勝者は、7月16日午前10時の東部時間に最も投票数が多い回答になります。幸運を!
更新:
まだ表現されている混乱を鎮めるために、これは役立つかもしれません:
上記のルール:
- ループやgotoを使用しないでください
- 関数は自分自身を呼び出すことはできません
- 「ループ」で何でもしたい
何かを実装したいが、ルールで明示的に禁止されていない場合は、先に進んでください。多くの答えがすでにルールを曲げています。
rep(f){f();f();}
-これは、コードの繰り返し実行を許可するステートメント(関数宣言は一部の言語のステートメントです)です。許可されていません。ループを実装するコードを要求します。そのコードが構文的に文である場合、あなたはそれをちょうど禁止しました。別の例:f(b) { b(); g(b); }; g(b) { f(b); }
。私は言うf
(再帰関数であるとg
)再帰関数です。許可されていませんか?
function A
の呼び出しfunction B
とfunction B
呼び出しのfunction A
機能の1が何かを実行している間。関数はそれ自体を呼び出さないため、基準に基づいて有効である必要があります^。^