Recursive Functions
1197 ワード
Recursive Functions
Recursive Functionsとは?
独自の関数.
私たちがよく知っている重複文にはfor、whileなどがあります.
これらの繰り返し可能な文で実現される論理は、再帰関数として使用することができ、逆も同様である.
再帰関数の最も代表的な使用例はfactorialである.
int factorial (int n) {
if(n === 1) {
return 1;
}
return n * factorial(n - 1);
}
stack overflow
再帰関数を使用する場合は、スタックオーバーフローに注意してください.
int factorial (int n) {
return n * factorial(n - 1)
}
ここで、n==1の場合、戻り値は与えられず、-1、-2、-3...-無限に行方不明になるn.実際、コンピュータのメモリは限られており、無限に大きくなることはできません.スタックオーバーフローの問題が発生します.再帰関数の長所と短所
長所
短所
関数を呼び出し続ける場合は、領域変数、パラメータ、および戻り値をプロセススタックに格納する必要があります.宣言変数値のみを使用する重複文に比べて、このプロシージャはより多くのメモリを消費し、速度が低下します.
関数の呼び出し->返されるコンテキストの切り替えによってコストが発生します.
Reference
この問題について(Recursive Functions), 我々は、より多くの情報をここで見つけました https://velog.io/@kim_truee/Recursive-Functionsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol