求一數的次方
問題:n的p次方 = 將n自乘p次。 迴圈解步驟:
- 宣告一浮點數 powerOfn = 1
- 使用一個迴圈跑p次,powerOfn = powerOfn*n; (若p為負數,取其絕對值,也就是將p乘-1,可用stdlib裏的abs函式)
- 若p是負數,則powerOfn = 1/powerOfn;
- 印出powerOfn
遞迴解 ‧ 請看下面程式範例解答,追蹤一次。(請參考用遞迴做到迴圈效果的說明。)
程式範例解答
#include <cstdlib>
#include <iostream>
#include <stdlib.h> //為了使用abs取絕對值函式
using namespace std;
float base_power(float b,int p){
if(p==0) return 1;
else if (p>0) return base_power(b,p-1)*b;
else return base_power(b,p+1)/b;
}
float bp(float b, int p){
float r=1.0;
for (int i = 1; i <= abs(p); i++) r *= b;
if (p < 0) r = 1/r;
return r;
}
void main(int argc, char *argv[]){
int base,power,result;
cout<<"請輸入base值";
cin>>base;
cout<<"請輸入power值";
cin>>power;
cout << base_power(base, power);
system("PAUSE");
}