题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解题思路:该题比较基础。主要考虑exponent大于0和小于0两种情况。
参考答案:
#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <algorithm>
#include <math.h>
using namespace std;
class Solution {
public:
double Power(double base, int exponent) {
double dulp;
if (exponent >= 0)
{
dulp = pow(base,exponent);
} else{
dulp = pow(base,-exponent);
dulp = 1/dulp;
}
return dulp;
}
};
int main(){
Solution solution;
cout<<"result:"<<solution.Power(2,-3)<<endl;
return 0;
}
不调用power函数(自己写):
//需要考虑情况:
//1.base为0,exponent为任何数
//2.base不为0,exponent为0
class Solution {
public:
double Power(double base, int exponent) {
if (base != 0 && exponent == 0)
return 1;
if (base == 0)
return 0;
double temp = base;
if (exponent > 0)
{
for (int i = 1; i < exponent; ++i) {
base *= temp;
}
return base;
}
if (exponent < 0)
{
for (int i = 1; i < abs(exponent); ++i) {
base *= temp;
}
return 1/base;
}
}
};