<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java 遞歸指南 > 原文: [https://howtodoinjava.com/java/basics/java-recursion/](https://howtodoinjava.com/java/basics/java-recursion/) **遞歸**是一種編程樣式,其中**方法重復調用其自身**,直到滿足某個預定條件為止。 這種方法調用也稱為**遞歸方法**。 ## 1\. 遞歸方法的語法 基于遞歸的方法必須具有兩個基本組成部分才能正確解決問題。 1. 遞歸方法調用 2. 打破遞歸的前提 請記住,如果無法達到或未定義前提條件,則會發生棧溢出問題。 ```java method(T parameters...) { if(precondition == true) //precondition { return result; } return method(T parameters...); //recursive call } ``` ## 2\. 遞歸類型 根據何時進行遞歸方法調用,遞歸有兩種類型。 #### 1\. 尾遞歸 當遞歸方法調用是該方法內部執行的最后一條語句時(通常與`return`語句一起使用),則遞歸方法為**尾遞歸**。 ```java method(T parameters...) { if(precondition == true) { return result; } return method(T parameters...); } ``` #### 2\. 頭遞歸 不是尾遞歸的任何遞歸都可以稱為頭遞歸。 ```java method(T parameters...) { if(some condition) { return method(T parameters...); } return result; } ``` ## 3\. Java 遞歸示例 #### 3.1 斐波那契序列 斐波那契數列是一個數字序列,其中每個數字都定義為兩個數字之和。 例如 -1、1、2、3、5、8、13、21、34,依此類推… 此函數為我們提供從 1 開始的第 n 個位置的斐波那契數。 ```java public int fibonacci(int n) { if (n <= 1) { return n; } return fibonacci(n-1) + fibonacci(n-2); } ``` 讓我們測試一下此函數以打印`n = 10`的斐波那契數列; ```java public static void main(String[] args) { int number = 10; for (int i = 1; i <= number; i++) { System.out.print(fibonacci(i) + " "); } } ``` 程序輸出。 ```java 1 1 2 3 5 8 13 21 34 55 ``` #### 3.2 最大公約數 兩個正整數的*最大公約數*(gcd)是最大的整數,該整數平均分為兩個整數。 ```java public static int gcd(int p, int q) { if (q == 0) return p; else return gcd(q, p % q); } ``` 讓我們測試一下此函數以打印`n = 10`的斐波那契數列: ```java public static void main(String[] args) { int number1 = 40; int number2 = 500; System.out.print( gcd(number1, number2) ); } ``` 程序輸出: ```java 20 ``` 讓我知道您有關 Java 中**遞歸的問題**。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看