JavaScriptの再帰関数とその小事例

1533 ワード

JavaScriptの再帰関数
再帰的な物語から始まる
多くの人が子供の時にこのような話を聞いたことがあります.
昔、山にお寺があって、お寺にお坊さんがいました.昔は山があって、山にお寺がありました.お寺には古いお坊さんがいます.彼は話をしています.
1.定義
  • 再帰関数は何ですか?
  • はプログラミングの世界で、再帰的には自分で自分の手段を呼び出して関数に再帰することです.
  • の関数の内部で、自分を呼び出して、ループを繰り返します.
  • 再帰関数とループは、
  • に類似している.
  • は初期化が必要で、自己増加(または自己減少)、コード、条件判断を実行します.そうでなければ、無限の再帰関数です.私たちは死再帰
  • といいます.
    2.したがって、再帰関数を作成するには、3つの制約が必要です.
  • 終了条件=>ifに包まれたreturn;
  • 演算条件=>アルゴリズム=>計算方法を簡素化する
  • は結果を返します.
  • //              
    
    //           ,      ,       ,      ,    ,    
        function fn() {
          fn()
        }
        fn()
    
    
    簡単に再帰を実現する
    例題:numは1~numの積算を求めます.
      function sum(num) {
      //    
          if (num === 1) {
            return 1;
          }
          
        return sum( num - 1 ) + num;
        }
         console.log(sum(3)); // 3+2+1= 6
    
    
    注意:
  • 再帰的に消費性能を比較し、できるだけ少なく
  • を使用する.
  • 再帰は自分で自分を呼び出す関数です.
  • の再帰はサイクル
  • と類似している.
  • 再帰関数は戻り停止に注意しなければなりません.
    再帰的ないくつかの小さな例について
  • 配達は再帰的に解いた時、主に最後のステップを探してどうやって境界条件を解くか、すなわち第一歩
  • フィボナッチの数列は、配達のアプリケーションに再帰されます.
  •     function getFib(x) {
              if(x==1||x==2){
                return 1
              }
              return getFib(x-1)+getFib(x-2);
            }
            console.log(getFib(12));
    
  • 数字の各桁の数字の和を求めます.123—6—1+2+3
  •     function getEverySum(x) {
          if (x < 10) {
            return x;
          }
          //            
          return x % 10 + getEverySum(parseInt(x / 10));
        }
        console.log(getEverySum(1364));