6.数值的整数次方
题目内容:
代码及思路:
#include<iostream>
using namespace std;
class solution
{
public:
double Power(double base,int exponent)
{
//考虑exponent的不同情况
//exponent>0时
if (exponent > 0)
{
if (exponent == 1)
return base;
//如果exponent是偶数可以不断的进行分解
if (exponent % 2 == 0)
return Power(base, exponent / 2)*Power(base, exponent / 2);
//如果exponent是奇数则将其分解为原数乘上偶数幂相乘
else
return Power(base, exponent / 2)*Power(base, exponent / 2 + 1);
}
else if (exponent == 0)
return base;
else
return 1 / Power(base, -exponent);
}
};
void main()
{
double base;
int exponent;
int result;
cin >> base>>exponent;
solution* object = new solution();
result = object->Power(base, exponent);
cout << result << endl;
}