要以遞迴的方式實現一個計算底數 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。