<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # C++ 遞歸 > 原文: [https://www.programiz.com/cpp-programming/recursion](https://www.programiz.com/cpp-programming/recursion) #### 在本教程中,我們將通過示例學習 C++ 中的遞歸函數及其工作。 調用自身的[函數](/cpp-programming/function)被稱為遞歸函數。 并且,這種技術稱為遞歸。 * * * ## C++ 中的遞歸工作原理 ```cpp void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... } ``` 下圖顯示了遞歸調用的方式。 ![Working of C++ recursion](https://img.kancloud.cn/e2/f1/e2f12ebd7d8d787b663cfe96ccb67ffd_880x604.png "Working of C++ recursion") C++ 編程中遞歸的工作方式 遞歸一直持續到滿足某些條件為止。 為了防止無限遞歸,可以在一個分支進行遞歸調用而另一個不進行遞歸調用的情況下使用[`if...else`語句](/cpp-programming/if-else)(或類似方法)。 * * * ## 示例 1:使用遞歸的數字階乘 ```cpp // Factorial of n = 1*2*3*...*n #include <iostream> using namespace std; int factorial(int); int main() { int n, result; cout << "Enter a non-negative number: "; cin >> n; result = factorial(n); cout << "Factorial of " << n << " = " << result; return 0; } int factorial(int n) { if (n > 1) { return n * factorial(n - 1); } else { return 1; } } ``` **輸出** ```cpp Enter a non-negative number: 4 Factorial of 4 = 24 ``` * * * ### 遞歸程序的工作原理 ![Working of C++ Recursion Program](https://img.kancloud.cn/64/b9/64b9e2327c83e04748f77199e55a3bd5_1036x1456.png "Working of C++ Recursion Program") C++ 遞歸程序如何工作 如我們所見,`factorial()`函數正在調用自身。 但是,在每次通話期間,我們將`n`的值減小了`1`。 當`n`小于`1`時,`factorial()`函數最終返回輸出。 * * * ## 遞歸的優缺點 以下是在 C++ 中使用遞歸的優缺點。 * * * ### C++ 遞歸的優點 * 它使我們的代碼更短,更清晰。 * 在涉及數據結構和高級算法(例如圖形和樹遍歷)的問題中需要遞歸。 * * * ### C++ 遞歸的缺點 * 與迭代程序相比,它占用大量棧空間。 * 它使用更多的處理器時間。 * 與等效的迭代程序相比,調試起來會更加困難。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看