阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104年關務人員、104年身心障礙人員、104年國軍上校以上軍官轉任考身障特考四等_資訊處理#29729
科目:程式設計
年份:104年
排序:0

申論題內容

五、試以遞迴的方式撰寫指數函數 integerPower,宣告如下: public static int integerPower(int base, int exponent) 其中 base 為底數,exponent 為指數。呼叫範例為 integerPower(2,5)=32。(15 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
要以遞迴的方式實現一個計算底數 base 的 exponent 次方的函數 integerPower,我們需要考慮指數 exponent 的不同情況。遞迴的基本思想是將一個問題分解成更小的子問題,直到達到一個簡單的情況可以直接解決。
以下是遞迴函數的實現:
基本情況:如果指數 exponent 為0,任何數的0次方都定義為1(根據指數函數的定義)。
遞減情況:如果指數 exponent 大於0,則 base 的 exponent 次方可以定義為 base 乘以 base 的 exponent-1 次方。
java
Copy code
public static int integerPower(int base, int exponent) {
    // 基本情況
    if (exponent == 0) {
        return 1;
    }
    // 遞減情況:將問題分解成更小的部分
    else {
        return base * integerPower(base, exponent - 1);
    }
}
這個實現簡單直接:當指數減少到0時,遞迴結束,每一層遞迴返回時都將當前的 base 與下一層遞迴的結果相乘,直到達到基本情況。呼叫 integerPower(2, 5) 會返回32,因為:
2^5 = 2 * 2^4
2^4 = 2 * 2^3
2^3 = 2 * 2^2
2^2 = 2 * 2^1
2^1 = 2 * 2^0
2^0 = 1
所以,2^5 = 2 * 2 * 2 * 2 * 2 = 32。