JavaScriptの再帰アルゴリズム---

「再帰を理解するには、まず理解しなければなりません 再帰を。」-匿名

再帰関数は、直接的または間接的に、関数やメソッドすることができ、関数内で自分自身を呼び出しています

どのような仮定は、関数呼び出し自体結果を持っていますか?単に上記の上、それが実装されていたであろう。したがって、各再帰関数は、ベースライン条件、もはや無限の再帰を防止するために再帰呼び出し(停止点)、ある条件を有していなければなりません。 

機能(X-){    
  constのrecursionAnswer =確認( '再帰が何にあなたを理解する?');
IF(recursionAnswer === trueに){
    //ベースライン条件、ポイントの停止
   trueに復帰し;
 }
  //再帰呼び出し
  A(recursionAnswer);
}

再帰の第1の例として、我々は、数の階乗を計算する方法を見て。数nの階乗は、の積として定義N!、1からnまでの整数を表します。
図5は、!5の階乗を表し、そして5×4×3×2× 1は等しく、結果は120です。(概念定義0!= 1は、0に等しいされていないことに注意してください)

階乗関数(X){
     // ベースライン
    IF(X == 0 || == X 1 ){
        リターン 1 ;   
    } 
    // 再帰呼び出しの
    
    リターン     X *階乗(X- 1 ); 

}

フィボナッチ数

 配列0,1,1,2,3,5,8,13,21、34、等その数。番号1 + 2 1 3 1 + 2から得られた数から得られ、数5 + 2が3から得られた、など。次のようにフィボナッチ数が定義されています。 

 

 

//反復法

関数fibonacciIterative(N){  
        場合(N < 1戻り 0 ;
       もし(N <= 2リターン 1 
       fibNMinus2ましょう = 0を
       fibNMinus1ましょう = 1 ;  
       fibNを聞かせて = N;  
       以下のために(iは=せて2 ; iが<= N; I ++ ){ 
              // N> = 2 
            fibN = fibNMinus1 + fibNMinus2。 
            // F(N-1)+ F(N-2)    
            fibNMinus2 = fibNMinus1。  
            fibNMinus1 = fibN。  
       }    
  戻りfibNと、
}
                       

//再帰的な方法

関数fibona(N){
     場合(N <= 2 
    { 
        リターン 1 
    } 
    場合(N < 1 
    { 
        戻り 0 ; 
    } 
    reurn fibona(N - 1)+ fibona(N- 2 ); 
}

おすすめ

転載: www.cnblogs.com/elexmiumiu/p/12206512.html