我最近一直在尋找遞歸,這一直很混亂。我正在嘗試編寫一個java程序,它使用遞歸來生成一個基數的結果給一個冪,該冪的基數也有多少個指數。例如,兩個具有3的功率和的3高度的鹼會導致:如何使用遞歸計算功率的功率?
(((2^3)^ 3)^ 3)
這是我的(非常有缺陷)代碼:
public static void main(String[] args) {
System.out.println(exponentWithHeight(2, 2, 3));
}
public static int exponentWithHeight(int base, int power, int height) {
if (power < 0 || height < 0) {
throw new IllegalArgumentException("Check input values.");
}
if (power == 0) {
return 1;
} else {
return (base * height * exponentWithHeight(base, power - 1, height - 1));
}
}
我真的不知道如何去得到我想要的輸出;正如我所說的,這對我來說真是令人困惑和新鮮。有人可以幫助解釋如何去做這件事嗎?
什麼是你期望的輸出,並且您能得到什麼呢?你在調試時發現了什麼? –
因此,當我使用調用方法exponentWithHeight(2,2,3)時,我的期望輸出將是256.相反,我得到24.當我調試它時,一切都運行完美。 –
「一切都運行完美」你是什麼意思?你調試它時會得到256嗎?或者你沒有得到任何錯誤? (後者是毫無意義的,如果你沒有得到正確的結果,你顯然會有錯誤) –