【剑指offer】面试题11:数值的整数次方
来源:互联网 发布:java任务书 编辑:程序博客网 时间:2024/06/15 06:18
首先,我们分析下可能出现的情况:指数可能为负值,我们先求指数的绝对值次方,然后求导。->求导,那就要考虑分母不为0的情况了。
bool g_InvalidInput = false;double Power(double base, int exponent){ g_InvalidInput = false; if (equal(base, 0.0) && exponent < 0) { g_InvalidInput = true; return 0.0; } unsigned int absExponent = (unsigned int)(exponent); if (exponent < 0) { absExponent = (unsigned int)(-exponent); } double result = PowerWithUnsignedExponent(base, absExponent); if (exponent < 0) { result = 1.0 / result; } return result;}double PowerWithUnsignedExponent(double base, unsigned absExponent){ double result = 1.0; for (int i = 0; i < absExponent; ++i) { result *= base; } return result;}bool equal(double num1, double num2){ if ((num1-num2<0.000001) && (num1-num2>-0.000001)) { return true; } return false;}
第二种方法:
a^n
当n为偶数时,a^n=a^(n/2);
当n为奇数时,a^n=a^((n-1)/2)*a^((n-1)/2)*a;
double PowerWithUnsignedExponent(double base, unsigned absExponent){ if (absExponent == 0) { return 1; } if (absExponent == 1) { return base; } double result = PowerWithUnsignedExponent(base, absExponent >> 1); result *= result; if (absExponent & 0x1) { result *= base; } return result;}
0 0
- [剑指offer][面试题11]数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer 面试题11 数值的整数次方
- 剑指Offer:面试题11 数值的整数次方
- 《剑指Offer》面试题11:数值的整数次方
- 【剑指Offer学习】【面试题11 :数值的整数次方】
- 剑指offer-面试题11:数值的整数次方
- 剑指offer之面试题11:数值的整数次方
- 剑指offer----面试题11:数值的整数次方
- 剑指offer之面试题11数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指Offer----面试题11:数值的整数次方
- 剑指offer-面试题11:数值的整数次方
- 剑指offer面试题11:数值的整数次方
- 剑指offer--面试题11: 数值的整数次方
- 剑指Offer之面试题11:数值的整数次方
- 剑指offer-面试题11-数值的整数次方
- 剑指Offer系列-面试题11:数值的整数次方
- 整理:python的二维数组操作
- instance “error” 了怎么办?- 每天5分钟玩转 OpenStack(159)
- Socket编程中,阻塞与非阻塞的区别
- C#实现跑马灯实例---timer控件
- 381. Insert Delete GetRandom O(1)
- 【剑指offer】面试题11:数值的整数次方
- Location.search的定义和用法
- nodejs开发——express配置自签名https服务器
- 关于模拟考试网站
- KMP算法详解
- 【Android】完美解决HorizontalScrollView和SwipeRefreshLayout放在一起报空指针的问题
- awt--类本身作为事件监听类
- 2、完成一个简单的时间片轮转多道程序内核代码
- 论文总结(一)—基于深度学习的普通遥感图像质量改进