/* * 計算數值的整數次方.cpp * * Created on: 2018年4月13日 * Author: soyo */ #include<iostream> #include<math.h> #include<ctime> using namespace std; int main() { double power(double base,int exp); int x=2,y=3; long int z; z=pow(2,3); cout<<"值爲:"<<z<<endl; z=z>>2;//右移兩位 cout<<"值爲:"<<z<<endl; double a; clock_t start,stop,consume_time; start=clock(); a=power(12,100); stop=clock(); consume_time=stop-start; cout<<"新值爲:"<<a<<endl; cout<<"運行時間爲:"<<consume_time<<endl; } double power(double base,int exp) { if(exp==0) return 1; if(exp==1) return base; double result; result=power(base,exp>>1); result*=result; if(exp&0x1==1) result*=base; // if(exp%2==1) //均可以(但第一種效率更高) // result*=base; return result; }
結果:ios
值爲:8 值爲:2 新值爲:8.2818e+107 運行時間爲:1