1 考虑指数和底数不同的条件
#include <iostream>
#include <cmath>
using namespace std;
class solution
{
public:
//12 数值的整数次方
double power(double base, int exponent) {
if (exponent == 0) {
return 1;//指数为0
}
if (Equal(base, 0.0) == true && exponent < 0) {
cout << "error" << endl;
return 0.0;
}//底数为0
double res = 1.0;
if (exponent > 0) {
res = PowerNormal (base, exponent);//指数大于0
}
else {
res = PowerNormal (base, -exponent);//指数小于0
res = 1/res;
}
return res;
}
private:
double PowerNormal(double base, int exponent) {
double res = 1;
for (int i = 0; i < exponent; i++) {
res = res * base;
}
return res;
}//求次方
bool Equal(double left ,double right) {
if ((left - right) == 0.000000) {
return true;
}
else {
return false;
}
}//比较left与right是否相等
};
int main()
{
solution solu;
cout << solu.power(2, -3);
return 0;
}