数值的整数次方
解题思路:
注意考虑不同的情况:
1:指数为整数,包括正整数、负整数和0;
2:对于底数为0,指数为负数 的情况,此时0作分母,要出错。。
在计算机中表示小数(包括float和double类型)都有误差,,我们不能直接用等号(==)判断两个数是否相等。。如果两个数的差的绝对值很小,比如小于0.0000001,就可以认为这两个数相等。
#include<iostream>
#include<windows.h>
using namespace std;
bool Equal(double num1,double num2)
{
if((num1-num2>-0.00000001)&&(num1-num2<0.00000001))
return true;
else
return false;
}
double Power(double base, int exponent)
{
if(Equal(base,0.0))
return 0.0;
double result=1.0;
if(exponent==0)
result=1;
if(exponent>0)
{
for(int i=1;i<=exponent;i++)
{
result*=base;
}
}
if(exponent<0)
{
for(int i=1;i<=(-exponent);i++)
{
result*=1/base;
}
}
return result;
}
int main()
{
double a=Power(2,-3);
cout<<a<<endl;
system("pause");
return 0;
}