[資料結構(Data Structure, DS) 教學 教程 教材 Tutorial] 基礎遞迴 - 階乘演算法
YehYeh\'s Notepad yehyeh@gmail.com 

[資料結構(Data Structure, DS)] 基礎遞迴

階乘演算法

  • 用遞迴設計階乘演算法
    • 階乘(Factorial): n! = 1 × 2 × 3 × ... × (n-1) × n;
    • 設計遞迴
      • Base Case:if n = 0 return 1
      • General Case:if n > 0 return n × Factorial(n-1)
    • 演算法
      int Factorial(int n)
      {
          if( n == 0)
              return 1;
          else
              return n * Factorial(n - 1);
      }
      
      int Factorial(int n)
      {
          if( n == 0)
              return 1;
          else
              return n * Factorial(n - 1);
      }
      
      int Factorial(int n)
      {
          if( n == 0)
              return 1;
          else
              return n * Factorial(n - 1);
      }
      
      int Factorial(int n)
      {
          if( n == 0)
              return 1;
          else
              return n * Factorial(n - 1);
      }
      
    • 問題:若執行Factorial(3),會呼叫Factorial( )幾次?
      • 階層的遞迴呼叫
      • ∴共4次
    • 問題:若執行Factorial(n),會呼叫Factorial( )幾次?
      • 執行執行Factorial(n),會呼叫Factorial( )共n+1次