实现函数double power(double base,int exp)
分析:这道题实际上呢,不难,难在考虑边界问题,也就是当base和exp为负数的时候。有的时候我写代码有点矛盾,想着做算法题,能解决大多数情况就行了,但是实际上做开发的时候需要考虑各种各样的边界问题。
#include <stdio.h>
double Power(double base,int exp)
{
double ret;
if(exp==0)
{
ret=1;
}else
{
int tmp=exp;
ret=base;
if(exp<0)
{
tmp*=-1;
}
for(int i=0;i<tmp-1;i++)
{
ret*=base;
}
if(exp<0)
{
ret=1/ret; //这里当exp小于0的时候取ret的倒数
if(base<0)
{
ret*=-1; //这里当base小于0的时候结果取负数
}
}
}
return ret;
}