嘿,我有一個問題,我必須以多種方式解決x^n。其中之一涉及使用遞歸公式,給我一個很難的時間。這樣的方法之一我用遞歸對於x^N對於n> = 0遞歸到指數的遞歸解決方案
int power2(int base, int power){
if (power == 0)
return 1;
else if (power == 1)
return base;
else
return (base * power2(base, power - 1));
}
這個有意義的我因此,當我設定X = 2和N = 4,則減少功率,其作用作爲一個計數器,並且把2x2的能量提升到3,4 * 2,提升到2,8 * 2 = 16的能力。比功率提升到1,並且我有一個基本情況是如果能量提升到1它只是返回基地。但是對於我的下一個,我必須使用三個公式來解決它。
- X = 1
- X Ñ如果n是偶數= [X N/2]
- X Ñ如果n是奇數= X * [ X n/2個]
小號Ø我有什麼到目前爲止
int power3(int base, int power){
if(power == 0){
return 1;
}
else if (power == 1)
return base;
// if power is even
if (power % 2 == 0){
return base*(power3(base,(power/2)));
}
// if power is odd
else{
return 0;
}
}
所以我只是試圖讓偶數先工作,當我設置X = 2和N = 4,返回8這對我來說很有意義,因爲當功率爲4/2只會循環兩次,因爲> 1。所以我真的想找出一種方法來讓它循環一次,同時保持真實的公式給我。當我現在加入奇數基本情況下,程序將運行直到n^5,但是n^6返回32
食物的思考:你確定你需要一個單獨的基礎案例'power == 1'嗎? – hugomg
沒有你的權利,我補充了奇怪的力量公式。當它達到一個時它應該處理權力。然而,它只能運行到2^6,例如 –