一、針對以下 Java 程式,執行後輸出為何?(25 分)
詳解 (共 2 筆)
詳解
****149
*9
*****330
true
false
詳解
方法 A 的解釋
- A 方法是遞迴方法,當 x < 20 時,它會調用自身的 A(x+5) 再加上 B(x) 的結果,否則它就直接返回 x。
- 當 x = 3 時,A(3) 將依次執行 A(8),然後是 A(13)、A(18),直到 x >= 20 才停止遞迴。
方法 B 的解釋
- B 方法輸出一個 *,並返回 3 * x。也就是說,每次執行 B 都會有 * 顯示在控制台,然後返回 3 倍的輸入參數 x

進入 A(3)
進入 A(8)
進入 A(13)
進入 A(18)
A(23) 到達 base case,返回 23
*A(18) 返回 77
*A(13) 返回 116
*A(8) 返回 140
*A(3) 返回 149
A(3) 的結果: 149
*B(3) 的結果: 9
*進入 A(0)
進入 A(5)
進入 A(10)
進入 A(15)
A(20) 到達 base case,返回 20
*A(15) 返回 65
*A(10) 返回 95
*A(5) 返回 110
*A(0) 返回 110
C(3) 的結果: 330
D(True, True) 的結果: True
E(True, False) 的結果: False
----------------------