剑指offer 面试题11 数值的整数次方
2014-07-15 18:47
525 查看
E:\arithmetic\Power
O(lgn) 二分法
注意:整数可能是正、负、零
O(lgn) 二分法
注意:整数可能是正、负、零
#include <stdio.h> double power(double base, int exponent); int main(int argc, char *argv[]) {//测试用例:指数分别为整数、负数、基数、偶数、0;底数为0 double r; r = power(2, 3); printf("%lf\t", r); r = power(2, -3); printf("%lf\t", r); r = power(2, 4); printf("%lf\t", r); r = power(1, 3); printf("%lf\t", r); r = power(2, 0); printf("%lf\t", r); r = power(0, 0); printf("%lf\t", r); return 0; } double power(double base, int exponent){ if(exponent == 0){ if((base<0.000001)&&(-0.000001<base)){//!!! printf("error !0 power 0!\n"); return 0; } return 1; } double result = base; int ex = exponent; if(exponent < 0){ ex = (-1)*exponent; } int i; for(i=0 ; i<(ex>>1) ; i++){//!!! result *= result; } if(ex&0x01)//& result *= base; if(exponent < 0) result = 1/result; return result; }
相关文章推荐
- 【剑指offer】3.3代码的完整性——面试题11:数值的整数次方
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
- 剑指Offer之面试题11:数值的整数次方
- 剑指Offer学习之面试题11 :数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer--面试题11:数值的整数次方--Java实现
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指offer面试题11 数值的整数次方 java实现
- 剑指offer面试题11之求数值的整数次方
- 剑指Offer面试题11数值的整数次方
- 剑指offer——面试题11:数值的整数次方
- 剑指Offer面试题11:数值的整数次方 Java实现
- 剑指offer面试题[11]-数值的正整数次方
- 剑指Offer面试题11(Java版):数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer——面试题11:数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指offer_面试题11_数值的整数次方(*)
- 剑指offer——面试题11:数值的整数次方