我們將得到一個任務,解決了遞歸函數可以使用下面的規則計算數量的功率(拍了快照):遞歸「權力」的功能
http://i.imgur.com/sRoQJ1j.png
我似乎無法想象這樣做,因爲我一直在嘗試過去4個小時。 我嘗試:
public static double power(double x, int n) {
if(n == 0) {
return 1;
}
// x^n = (x^n/2)^ 2 if n > 0 and n is even
if(n % 2 == 0) {
double value = ((x * power(x, n/2)) * x);
return value;
} else {
double value = x * ((x * power(x, n/2)) * x);
return value;
}
}
我相信我做錯了,當我乘以X與遞歸函數,而我應該被x乘以(功率= X * X * ......,X(N個)) ...
我也可以看到,在此聲明:
double value = ((x * power(x, n/2)) * x);
這是錯誤的,因爲我不是平方值只是隨x相乘。我想我需要首先將它存儲在一個變量中,然後做一些類似value *的值來平衡最終結果 - 但這只是給了我一個巨大的數字。
任何幫助表示讚賞,謝謝。
不知道哪個回答我應該接受:(PS - 我有一個大腦放屁能否請您解釋如何電力(X * X,N/2)的作品?我不明白這是如何工作的,即使你沒有平分答案 – AMoghrabi 2015-01-21 00:37:51