描述:
模拟实现pow函数
特殊情况:
底数为0且指数为负数的时候直接报错。
0的0次方在数学上没有意义,在这里当作1来处理。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#define RANGE 0.000001
double Pow(double base, int exponent)
{
if ((base > -RANGE) && (base < RANGE) && exponent < 0)//base等于1,并且exponent小于1
{
printf("传入参数错误\n");
return -1;
}
size_t absExponent = exponent;
if (exponent < 0)
{
absExponent = -exponent;
}
double ret = 1;
while (absExponent--)
{
ret *= base;
}
if (exponent < 0)
{
ret = 1 / ret;
}
return ret;
}
int main()
{
double ret = Pow(2, 0);
cout << ret << endl;
system("pause");
return 0;
}