實(shí)現(xiàn)函數(shù) double Power(double base, int exponent)蒿讥,求 base 的 exponent 次方
不得使用庫(kù)函數(shù),同時(shí)不需要考慮大數(shù)問(wèn)題
題目解讀
劍指Offer 110
代碼
思路一咒林、自以為題目簡(jiǎn)單的解法
#include<iostream>
using namespace std;
class Solution {
public:
double Power(double base, int exponent) {
double result = 1.0;
for(int i = 0; i < exponent; i++){
result = result * base;
}
return result;
}
};
int main(){
Solution ss;
cout<<ss.Power(2, 3)<<endl;
}
思路二、
class Solution {
public:
double Power(double base, int exponent) {
if(base == 0) return 0;
if(exponent == 0) return 1;
bool flag = true;
if(exponent < 0){
flag = false;
exponent = -1 * exponent;
}
double result = 1.0;
for(int i = 0; i < exponent; i++){
result = result * base;
}
if(flag == false){
result = 1.0 / result;
}
return result;
}
};
思路三、
class Solution {
public:
double PowerCore(double base, int exponent){
double result = 0;
if(exponent == 1){
return base;
}
else{
result = PowerCore(base, exponent/2);
return result * result;
}
}
double Power(double base, int exponent) {
double result = 1.0;
bool flag = true;
if(base == 0) return 0;
if(exponent == 0) return 1;
if(exponent < 0){
flag = false;
exponent = -1 * exponent;
}
if(exponent/2 == 0){
result = PowerCore(base, exponent);
}
else{
result = PowerCore(base, exponent - 1);
result = result * base;
}
if(flag == false){
result = 1.0 / result;
}
return result;
}
};