#include<iostream>
using namespace std;
bool g_invalid = false;
bool equal_zero(double base)
{
g_invalid = false;
if (base <0.000001 && base >-0.000001)
return true;
return false;
}
double exe_pow(double base, int exponent)
{
double num = 1.0;
for (int i = 1; i <=exponent; ++i)
num = num * base;
return num;
}
double power(double base, int exponent)
{
if (equal_zero(base) && (exponent < 0))
{
g_invalid = true;
return 0.0;
}
if (exponent >0)
return exe_pow(base, exponent);
else
return (1.0 / exe_pow(base, -exponent));
}
int main()
{
double base;
int exponent;
cin >> base >> exponent;
cout << power(base, exponent) << endl;
system("pause");
return 0;
}
首先判断底数base或者次方数是否为0,如果不是,那么按照公式计算,如果次方数为正 正常计算,如果为负数,则用1除以这个次方数为绝对值的这个答案。