求一數的次方

問題:n的p次方 = 將n自乘p次。 迴圈解步驟:

  1. 宣告一浮點數 powerOfn = 1
  2. 使用一個迴圈跑p次,powerOfn = powerOfn*n; (若p為負數,取其絕對值,也就是將p乘-1,可用stdlib裏的abs函式)
  3. 若p是負數,則powerOfn = 1/powerOfn;
  4. 印出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");
}

results matching ""

    No results matching ""