数值的整数次方
题目
实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大树问题。
解析
这题看似简单,但是请别这么写-_-1
2
3
4
5
6
7
8double power(double base,int exp)
{
double result=1.0;
for(int i=1;i<=exp;i++)
result*=result;
return result;
}
还需要考虑:
- exp是负数怎么办?? 恩,那就是需要求倒数了
- exp是负数 但是base是0怎么办?? 恩,那就是无穷大了
- 复杂度能否小于O(exp)吗? a^5=a*a^4=a*(a*a)^2 所以可以使用递归法来做
考虑了这么多,那么可以直接上完整代码了
代码
1 | /** |
参考
本作品采用[知识共享署名-非商业性使用-相同方式共享 2.5]中国大陆许可协议进行许可,我的博客欢迎复制共享,但在同时,希望保留我的署名权